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)。

我只能以某种方式弃用公共使用吗?

4

1 回答 1

1

您可以通过将private属性设置true为服务定义来创建“想要成为私有”的服务。

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

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

于 2017-12-23T12:36:04.297 回答