Я изменил конфигурацию (config.yml
) и хочу проверить, если она сработала.Как получить загруженную конфигурацию в приложении Symfony?
Как я могу увидеть фактически загруженные конфигурации? Могу ли я получить к ним доступ с Controller
?
Я изменил конфигурацию (config.yml
) и хочу проверить, если она сработала.Как получить загруженную конфигурацию в приложении Symfony?
Как я могу увидеть фактически загруженные конфигурации? Могу ли я получить к ним доступ с Controller
?
Когда ваше приложение запускается в первый раз, Sf использует компонент HttpKernel для управления загрузкой конфигурации контейнера службы из приложения и пакетов, а также обрабатывает компиляцию и кеширование.
После того, как процесс компиляции загрузил службы из конфигурации, расширения и компилятора, он сбрасывается, так что кэш можно использовать в следующий раз. Затем сбрасываемая версия используется во время последующих запросов, поскольку она более эффективна.
Больше информации на: http://symfony.com/doc/current/components/dependency_injection/workflow.html
Если сбросить $ this-> контейнер в контроллере, вы будете видеть все параметры внутри параметров частной собственности, в том числе параметров, определенных в файле parameters.yml и в конфигурации. YML
Давайте предположим, что вы хотите знать, что текущее значение параметра локали - вы можете написать эту
$this->container->getParameter('locale')
Кроме того, все эти параметры сбрасываются в sf_root/var/cache/your_env/appDevDebugProjectContainer.xml
Я попробовал, но некоторых конфигов там нет. Например: я определил 'twig cache: false' в my'/app/config/config_dev.yml' (файл загружен). Но 'container' (' var_dump ($ this-> container) 'в' Controller') не «знает» ничего об этом параметре. – automatix
Извините, теперь я нашел его как 'originalCache'. Спасибо за помощь! – automatix
Нет проблем. Кроме того, вы можете var_dump $ this-> container-> get ('twig'), чтобы получить дополнительную информацию о среде twig –
Не существует объекта главной конфигурации, представляющего загруженную в настоящий момент конфигурацию. Symfony «компилирует» конфигурацию в кучу разных объектов. Это достаточно мощный и заслуживающий понимания: http://symfony.com/doc/current/configuration.html#learn-more Но нет ничего похожего на то, что я предполагаю, что вы ищете. – Cerad
Спасибо за комментарий! Конечно, Symfony объединяет все конфиги и обрабатывает их. Но результатом является один большой вложенный объект или массив. В Zend Framework я могу: 1. увидеть все загруженные конфигурации в панели инструментов Zend Developer Tools и 2. получить все фактически загруженные конфиги из службы 'Config'. Поэтому я ожидал аналогичную функциональность в Symfony: 1. в панели инструментов Web Debug и 2. где-то в коде ('Controller'). – automatix
Увы, в этом случае ваши ожидания приведут к разочарованию. – Cerad