依赖注入:如何覆盖Framework Bundle服务?

时间:2019-03-26 16:26:42

标签: symfony symfony4

当将Symfony 4.2的框架捆绑包 Serializer组件一起使用时,框架会按特定顺序自动配置多个 Normalizers

我想用我的个人实现(这是ObjectNormalizer的扩展)替换这些Normalizers(ObjectNormalizer)之一,而不用触摸提供的所有其他Normalizers或它们的顺序。

有没有一种方法可以在不重新声明序列化程序配置中所有规范化器及其顺序的情况下实现此目标?

另一种选择是确保将我的自定义Normalizer直接放置在ObjectNormalizer之前。

1 个答案:

答案 0 :(得分:0)

通过Symfony Framework Bundle的配置来优先设置规范化器。 可以找到列出的here

优先级

知道自己可以定义自己的优先级,以将CustomNormalizer放在service.yaml中所需的位置:

App\Normalizer\MyCustomNormalizer:
    tags:
    - {name: serializer.normalizer, priority: -995}