У меня есть класс обслуживания с именем класса NewsService
.
Сервис настроен следующим образом:
services:
portal.news:
class: xxx\NewsBundle\Service\NewsService
arguments: ["@doctrine.orm.entity_manager"]
Я использую Phpstorm с плагином symfony - плагин находит службу, а сама Symfony - нет.
Я получаю следующее сообщение об ошибке:
An exception has been thrown during the rendering of a template ("You have requested a non-existent service "portal.news".").
Как я пользуюсь услугой:
{{ render(controller('xxBundle:Widget:renderNews', {'slice_length': 250})) }}
в Контроллере
xxBundle:Widget:renderNews
:$articles = $this->get('portal.news')->getNewestArticles($count);
- cache is cleared
- Все проверил (неверная конфигурация сервиса, пакет загружен, синтаксис в порядке, ...)
yml
вы это определили? Вы уверены, что он введен в контейнер? - person Łukasz D. Tulikowski   schedule 21.01.2018php bin\console debug:container
, также я считаю, что намного проще просто иметь службы Symfony 3.3+ autowire вместо того, чтобы настраивать их самостоятельно. - person JimL   schedule 21.01.2018public: true
в вашей конфигурации, как указано в ответе ниже. Подумайте о переходе на Symfony 4, они полагаются на внедрение зависимостей, и вам не нужно беспокоиться о таких вещах. - person Alex Karshin   schedule 21.01.2018service.yml
пакета.public: true
не решает. Отладчик ничего не знает об услуге ... - person   schedule 21.01.2018