Php 反对公开使用服务

Php 反对公开使用服务,php,symfony,symfony4,symfony-3.4,Php,Symfony,Symfony4,Symfony 3.4,在一个更大的应用程序中,我有许多服务。使用Symfony 2.x,我们在控制器中使用了大多数公共服务: $container->get('service.id'); 过渡到Symfony 3.4/4,我不赞成公开使用服务。由于许多客户直接使用这项服务,我必须让他们公开 但我想将该服务的公共使用标记为“不推荐” 我已经知道如何在Symfony()中弃用服务定义 我是否能够以某种方式拒绝公开使用?您可以通过在服务定义中将private属性设置为true来创建一个“想要成为私人”服务 yaml

在一个更大的应用程序中,我有许多服务。使用Symfony 2.x,我们在控制器中使用了大多数公共服务:

$container->get('service.id');
过渡到Symfony 3.4/4,我不赞成公开使用服务。由于许多客户直接使用这项服务,我必须让他们公开

但我想将该服务的公共使用标记为“不推荐”

我已经知道如何在Symfony()中弃用服务定义

我是否能够以某种方式拒绝公开使用

您可以通过在服务定义中将
private
属性设置为
true
来创建一个“想要成为私人”服务

yaml:
public:true,private:true

php:
$definition->setPublic(true)->setPrivate(true)


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

Nice。正是我想要的。我试图装饰容器本身,并抛出一个弃用通知。这个更好。这是传统的吗?找不到此版本的任何文档。这是symfony core的内部版本,在中介绍。BTW,请考虑投票有用的答案: