У меня проблема здесь, и я не знаю, почему или где это терпит неудачу, возможно, я пропустил некоторую конфигурацию или около того, у меня есть этот код в DependencyInjection\AppExtension.php
файл:
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\Config\FileLocator;
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
use Symfony\Component\DependencyInjection\Loader;
class AppExtension extends Extension
{
/**
* {@inheritdoc}
*/
public function load(array $configs, ContainerBuilder $container)
{
$configuration = new Configuration();
$config = $this->processConfiguration($configuration, $configs);
$loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
$loader->load('services.yml');
}
}
Тогда в Resources/config/services.yml
У меня есть это:
services:
pdone.twig.extension:
class: GroupDCA\PDOneBundle\Extension\PDOneTwigExtension
tags:
- { name: twig.extension }
По какой-то причине не работает. Это значит, что я получил эту ошибку:
Фильтр «пустой» не существует в PDOneBundle :: pdone.html.twig в строке 1
Теперь, если я переместить определение услуг в config/config.yml
Я получил эту ошибку вместо:
Ошибка компиляции: невозможно использовать isset () для результата выражения (вместо этого можно использовать «null! == выражение»)
Что заставляет меня думать, что пакет не проходит через DependecyInjection, чего мне здесь не хватает? Почему разные ошибки?
1) Вы добавили свой пакет в AppKernel
?
2) Я не уверен, но я думаю, что вы должны следовать соглашению об именах вашего Extension
учебный класс:
DependencyInjection
каталогDependencyInjection
, Extension
класс должен быть назван как <BUNDLE>Extension
без суффикса «Связка». Это было бы PDOOneExtension
в твоем случае.Других решений пока нет …