我正在使用Symfony 4,目前正在集成Symfony Serializer组件。通过自动装配,提供的Serializer服务可以通过类型化方法自动注入类中,如此,
// Container injects instance of \Symfony\Component\Serializer\Serializer
public function indexAction(SerializerInterface $serializer)
第三方Serializer
类可以在point of construction,接受一个规范化器和编码器数组,在默认的注册服务中我认为是空的(见下文)。
是否有办法在创建该服务时触发规范化器和编码器的注入(实际上是更新该服务的配置),或者是否必须在应用程序services.yaml
中注册自定义服务引用该第三方类的文件,包含参数?如果是后者,那么如何定义一个Normalizer / Encoder类数组并将其作为参数注入该服务?
修改
原来我错误的是没有编码器/规范化器的默认Serializer服务(否则它不知道怎么做!),下面是它的默认状态;
答案 0 :(得分:1)
我相信后者会是你想要的。
实现将这些规范化器/编码器传递给构造函数(因为它们既不是标量也不是服务)的方法是提供自定义服务工厂类,如下所示:
<强> Using a Factory to Create Services 强>
希望这会有所帮助......