grabbee
@grabbee

Как понять странное поведение сервисов в Symfony?

Объявляю именованный сервис
some.easy_service:
    class: SomeVendor\Services\EasyService
    arguments:
      ...


Затем прописываю его в другой сервис
SomeVendor\SomeBundle\Services\AnotherService:
    arguments:
      $easyService: '@some.easy_service'
      ...


Получаю ошибку

Cannot autowire service "SomeVendor\SomeBundle\Services\AnotherService": argument "$easyService" of method "__construct()" references class "SomeVendor\Services\EasyService" but no such service exists. You should maybe alias this class to the existing "some.easy_service" service.


Он его и видит и не видит одновременно. Включено автосвязывание сервисов. Но алиас не объявлен, я ведь напрямую его прописал. Почему он его не видит в упор?
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
glaphire
@glaphire
PHP developer
Тут варианта два:
1) в определенной версии объявление через class устарело, надо через alias
https://symfony.com/doc/current/service_container/...
2) не перегенерен кеш контейнера
Я вообще сторонник полных неймспейсов, без алиасов в конфигах
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы