2013-03-21 2 views
3

Я знаю, что могу установить переменные Twig в моем app/config/config.yml, однако я хочу установить переменные на уровне каждого пакета (например: Bundle/Resources/config/??.yml).Конфигурация/переменные связывания Symfony2 для конкретной конфигурации

Например, я хочу включить идентификатор версии пакета в нижний колонтитул моих страниц. Я попытался установить конфигурацию twig в мои пакеты «services.yml», однако Symfony не смог разобрать конфигурацию.

Как я могу это достичь?

ответ

1

Я не уверен, как вы могли бы реализовать конкретные конфигурации для вашего примера. Консоли в пакетах, как правило, импортируются в основные файлы конфигурации, которые теперь являются специфичными для среды, а не специфичны для пакетов.

Однако, для вашего примера я бы просто сделал расширение ветки, которое возвращает имя пакета, который вы используете. Таким образом, вы можете использовать его везде, где хотите, в ваших шаблонах. Вы можете получить полностью именованный маршрут вашего контроллера из запроса, а затем просто использовать предварительное сопоставление, чтобы получить имя Bundle. Что-то вроде ниже должно работать:

public function getBundleName() 
{ 
    $pattern = "#([a-zA-Z]*)Bundle#"; 
    $matches = array(); 
    preg_match($pattern, $this->container->get('request')->get('_controller'), $matches); 
    return $matches[1]; 
} 

В этом примере $this->container был установлен в конструкторе, чтобы быть экземпляром контейнера. Если вы используете другой метод для получения контроллера, замените его соответствующим образом.

Смежные вопросы