2014-11-06 4 views
0

Похож на https://stackoverflow.com/a/17764186/3390057 для A "parameters.yml на пучок, symfony2". В настоящее время глобальные переменные доступны для каждого из пакетов. Мне нужно добавить глобальные переменные в ветку для каждого пакета. Это можно сделать?Twig глобальная переменная на комплект, Symfony2

ответ

0

глобальныйна комплект кажется для меня довольно странным. Я предполагаю, что вы хотите установить глобальную переменную изнутри пакета, правильно ли? В этом случае используйте TwigExtension, как описано в документации: http://symfony.com/doc/current/cookbook/templating/global_variables.html#using-a-twig-extension

1

Да, согласно these docs, вы можете просто добавить это к вашему закачиваемым whatever.yml файлу, который вы добавили в свою пачку:

twig: 
    # ... 
    globals: 
     foo: bar 

Затем вернитесь к нему в шаблонах Twig с помощью {{ foo }}

чтобы придать файл whatever.yml к вашей Bundle конфигурации (и обратно в Symfony), вы должны follow these instructions. Здесь вы добавить следующую строку в load() функции файла Extension, расположенного в DependencyInjection (как правило, это сделано при использовании php app/console generate:bundle):

use Symfony\Component\DependencyInjection\Loader; 
use Symfony\Component\Config\FileLocator; 

// ... 
public function load(array $configs, ContainerBuilder $container) 
{ 
    $loader = new Loader\YamlFileLoader(
     $container, 
     new FileLocator(__DIR__.'/../Resources/config') 
    ); 
    $loader->load('services.yml'); 
    $loader->load('whatever.yml'); // Your new line 
} 
+0

но мой parameters.yml не в приложение/Config /, потому что это теперь в Resource/config/каждого пакета, поэтому config.yml не найдет переменную. Вот почему нам нужно определить переменные для каждого пучка ветви. Файл, определяющий глобальные переменные для каждого пакета ветвей. – fgonzalez

+0

@fgonzalez Вот почему я сказал «добавьте это ** в ваш инъецированный файл' whatever.yml' ** »... Я видел вашу ссылку на [этот ответ] (http: /stackoverflow.com/a/17764186/1188035) и неправильно вывел, что вы бы поняли, как вставить этот файл из чтения предыдущего ответа, но так как вы этого не сделали, я отредактировал для дальнейших инструкций. – sjagr

+1

Это не работает для каждого пакета, так как пространство имен «twig» не представляется доступным ни в каких конфигурациях, загружаемых инъекцией зависимостей. – Adambean

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