В большем приложении у меня много сервисов. Используя Symfony 2.x, мы имеем большинство публичных сервисов, используемых в контроллерах:
$container->get('service.id');
Переход на Symfony 3.4 / 4 Я бы хотел отказаться от публичного использования сервисов. Поскольку многие клиенты пользуются сервисом напрямую, я должен держать их в открытом доступе.
Но я бы хотел отметить публичное использование сервиса как «устаревшее».
Я уже знаю, как отказаться от определений сервисов в Symfony (http://symfony.com/blog/new-in-symfony-2-8-deprecated-service-definitions).
Могу ли я осуждать только публичное использование каким-то образом?
Вы можете сделать услугу «хочу быть частным», установив private
приписывать true
на определение сервиса.
YAML: public: true, private: true
PHP: $definition->setPublic(true)->setPrivate(true);
Это вызовет уведомление об устаревании при получении сервиса из контейнера вместо его внедрения, чтобы вы могли сделать свой сервис действительно public: false
потом.
Других решений пока нет …