Расширение DI: нет расширения, способного загрузить конфигурацию для «twig»

#symfony #dependency-injection #twig

#symfony #внедрение зависимостей #twig

Вопрос:

Я только что создал расширение symfony — DI, где я пытаюсь добавить некоторую конфигурацию темы формы в мое приложение / config.yml.

1) Мой класс расширения:

 class ELFinderFieldTypeExtension extends Extension implements PrependExtensionInterface
{
    /**
     * {@inheritdoc}
     */
    public function load(array $configs, ContainerBuilder $container)
    {
        $configuration = new Configuration();
        $config = $this->processConfiguration($configuration, $configs);

        $loader = new LoaderYamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));

        $loader->load('form_themes.yml');
    }
...
  

2) Мой form_themes.yml

 twig:
    form_themes:
        - 'ELFinderFieldTypeBundle:elfinder:elfinder_widget.html.twig'
  

К сожалению, это неправильный способ загрузить конфигурацию twig, поэтому я получаю что-то вроде:

Нет расширения, способного загрузить конфигурацию для «twig» (в /var/www/html/…./DependencyInjection/../Resources/config/form_themes.yml). Искал пространство имен «twig», не нашел

Любой, у кого есть какая-либо идея, будет проголосован и оценен по достоинству.

Ответ №1:

Я нашел простое решение, которое мне нужно, это добавить мою конфигурацию после реализации PrependExtensionInterface интерфейса:

 public function prepend(ContainerBuilder $container)
{
    $configFile = sprintf('%s%s', __DIR__, '/../Resources/config/form_themes.yml');
    $this->prependYamlConfigFile($container, 'twig', $configFile);
}