Кэшированный контейнер в Symfony
Зная, сколько автоматических операций выполняется в PHP-фреймворке Symfony, может показаться, что это существенно вредит производительности (на самом деле нет). Так почему же Symfony способен работать со скоростью ветра?
Возможно это по той причине, что система сервисов управляется с помощью очень важного объекта -- "контейнера". Безусловно, многие фреймворки имеют контейнер, однако в Symfony контейнер уникален потому, что кэширован.
В результате получается, что когда вы загружаете 1-ую страницу, данные о сервисе компилируются и сохраняются. Таким образом та же функция автомонтирования и автоконфигурации нагрузки не добавляют. Означает это и облегчение работы с ошибками, так как фреймворк Symfony исследует и валидирует все, когда строится контейнер.
Но что происходит, когда вы обновляете файл, а кэшу, следовательно, нужно сформироваться заново? На деле, кэшированный контейнер достаточно "умен" для того, чтобы сформироваться при последующей загрузке страницы. Но это уже тема отдельного разговора. Впрочем, никто не мешает заглянуть в официальную документацию Symfony, найти ответ и написать его в комментариях.
Возможно, вам также будут интересны следующие статьи:
- "Добавляем логирование в Symfony";
- "Расширение и автоконфигурация Twig в Symfony";
- "Отладка на проде в Symfony";
- "Переменные окружения в Symfony";
- "Сервисы и автомонтирование в Symfony".
По материалам https://symfony.com/.