弃用公共使用服务

时间:2017-12-14 13:26:45

标签: php symfony symfony4 symfony-3.4

在更大的应用程序中,我有很多服务。使用Symfony 2.x,我们将大多数服务公开并在控制器中使用:

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

转换到Symfony 3.4 / 4我想弃用公共服务使用。由于许多客户直接使用该服务,我必须将其公开。

但我想将该服务的公开使用标记为“已弃用”。

我已经知道如何在Symfony(http://symfony.com/blog/new-in-symfony-2-8-deprecated-service-definitions)中弃用服务定义。

我能仅以某种方式弃用公共用途吗?

1 个答案:

答案 0 :(得分:1)

您可以通过在服务定义上将private属性设置为true来制作“想成为私人”服务。

yaml:public: true, private: true
php:$definition->setPublic(true)->setPrivate(true);

当从容器中获取服务而不是注入服务时,这将触发弃用通知,以便您可以在以后public: false真正地提供服务。