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