Как заставить symfony plugin для PHPStorm увидеть созданные в репозиториях методы?
Есть: Symfony 5.0.2, PHPStorm 2019.1.1, Symfony Support v0.18.183
В проектах с Symfony 4.3. все отлично работает, IDE не ругается если делаю вызов типа $em->getRepository(MyClass::class)->someCustomFoo($param);
Но вот в проекте с Symfony 5 IDE в упор не видит someCustomFoo в App\Repository для MyClass, говорит что нет такой функции. Хотя функция есть и код работает. Как это исправить?
Не хотелось бы отключать предупреждения или прописывать руками в комментариях что-то
ak_wi, Вам всё правильно говорят.
Используя DI вы получаете более прозрачный код, нежели с SL. Так ещё и проще следить за количеством зависимостей у класса.
kafkiansky, спасибо! Но использование dependency injection это не решение проблемы с плагином и IDE, это скорее решение на другом уровне - на уровне архитектуры коды. Но для маленького контроллера с одной функцией и минимумом работы внутри это мне кажется избыточным решением.
ak_wi, сколько раз я слышал про "это маленький контроллер и у него минимум функций". Загляните в него через месяц-другой. И di как раз решает две проблемы разом - и проблему с автокомплитом, и архитектурную. Очень не советую использовать ни магию, ни наследование от ServiceEntityRepository.
ak_wi, у ServiceEntityRepository соблазнительно мощный api, который заставит вас делать плохие вещи. Используйте композицию, чтобы ни себе, ни коллегам не давать возможность не думать о том, что вы делаете.