Устаревать публичное использование сервиса

В большем приложении у меня много сервисов. Используя Symfony 2.x, мы имеем большинство публичных сервисов, используемых в контроллерах:

$container->get('service.id');

Переход на Symfony 3.4 / 4 Я бы хотел отказаться от публичного использования сервисов. Поскольку многие клиенты пользуются сервисом напрямую, я должен держать их в открытом доступе.

Но я бы хотел отметить публичное использование сервиса как «устаревшее».

Я уже знаю, как отказаться от определений сервисов в Symfony (http://symfony.com/blog/new-in-symfony-2-8-deprecated-service-definitions).

Могу ли я осуждать только публичное использование каким-то образом?

4

Решение

Вы можете сделать услугу «хочу быть частным», установив private приписывать true на определение сервиса.

YAML: public: true, private: true
PHP: $definition->setPublic(true)->setPrivate(true);

Это вызовет уведомление об устаревании при получении сервиса из контейнера вместо его внедрения, чтобы вы могли сделать свой сервис действительно public: false потом.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]