Управление общими зависимостями с помощью родительских служб в Symfony 3

Я заметил странную вещь с управлением общими зависимостями с родительскими службами в Symfony 3.1.6. http://symfony.com/doc/current/service_container/parent_services.html

Я пытаюсь определить сервис user_manager, который расширяет сервис менеджера пользователей.



    // AppBundle/Service/UserManager.php

    namespace AppBundle\Service;

    use FOS\UserBundle\Doctrine\UserManager as BaseUserManager;

    class UserManager extends BaseUserManager
    {
    }


    // AppBundle/DependencyInjection/AppExtension.php

    namespace AppBundle\DependencyInjection;

    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)
        {
            $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config'));
            $loader->load('services.yml');
        }
    }



    # AppBundle/Resources/config/services.yml

    services:
        app.user_manager:
            class: AppBundle\Service\UserManager
            parent: fos_user.user_manager.default

При попытке получить услугу в контроллере

    

        $this->get('app.user_manager');

    

Затем выдается исключение: "Вы запросили несуществующую службу app.user_manager".

Однако, если я определю свой пользовательский сервис по-другому:



    # AppBundle/Resources/config/services.yml

    services:
        app.user_manager:
            class: AppBundle\Service\UserManager
            arguments:
                - '@fos_user.util.password_updater'
                - '@fos_user.util.canonical_fields_updater'
                - '@fos_user.object_manager'
                - '%fos_user.model.user.class%'

Тогда все работает нормально. Более того, раньше, в symfony 2.8, раньше он работал с "родителем".

Что может быть не так и как это должно быть сделано правильно с Symfony 3.1?

PS Я пытался очистить кеш, а также удалить каталог var/cache*, но это не помогает

0 ответов

Другие вопросы по тегам