Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 4-将构造函数参数注入自动连接的第三方服务_Symfony_Symfony4 - Fatal编程技术网

Symfony 4-将构造函数参数注入自动连接的第三方服务

Symfony 4-将构造函数参数注入自动连接的第三方服务,symfony,symfony4,Symfony,Symfony4,我正在使用Symfony 4,目前正在集成该组件。通过自动连接,提供的序列化程序服务可以通过类型提示方法自动注入类中,如下所示: // Container injects instance of \Symfony\Component\Serializer\Serializer public function indexAction(SerializerInterface $serializer) 该第三方序列化程序类可以在上接受一组规范化程序和编码器,我认为在默认注册服务中,这些规范化程序和

我正在使用Symfony 4,目前正在集成该组件。通过自动连接,提供的序列化程序服务可以通过类型提示方法自动注入类中,如下所示:

// Container injects instance of \Symfony\Component\Serializer\Serializer

public function indexAction(SerializerInterface $serializer)
该第三方
序列化程序
类可以在上接受一组规范化程序和编码器,我认为在默认注册服务中,这些规范化程序和编码器是空的(见下文)

是否有方法在创建该服务时触发规范化器和编码器的注入(基本上更新该服务的配置),或者是否必须在应用程序的
services.yaml
文件中注册自定义服务,该文件引用包含参数的第三方类?如果是后者,如何定义规范化器/编码器类数组并将其作为参数注入该服务

编辑

事实证明,我错误地认为默认序列化程序服务没有编码器/规范化器(否则,不知道如何执行任何操作都是无用的!),下面是它的默认状态


我相信你要找的是后者

实现将这些规范化器/编码器传递给构造函数(因为它们既不是标量也不是服务)的方法是提供定制的服务工厂类,如下所示:


希望这能帮上忙…

很高兴我能帮上忙;-)