Службы не загружены в Resources / config / services.yml, почему?

У меня проблема здесь, и я не знаю, почему или где это терпит неудачу, возможно, я пропустил некоторую конфигурацию или около того, у меня есть этот код в 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

Решение

1) Вы добавили свой пакет в AppKernel?

2) Я не уверен, но я думаю, что вы должны следовать соглашению об именах вашего Extension учебный класс:

  • Корневой каталог пакета должен содержать DependencyInjection каталог
  • В пределах DependencyInjection, Extension класс должен быть назван как <BUNDLE>Extensionбез суффикса «Связка». Это было бы PDOOneExtension в твоем случае.
3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]