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

Dependency Injection: How to overwrite Framework Bundle service?

当使用 Symfony 4.2 的 Framework BundleSerializer Component 时,有几个 Normalizers 由框架按特定顺序自动配置。

我想用我个人的实现(它是 ObjectNormalizer 的扩展)替换其中一个规范化器 (ObjectNormalizer),而不触及所有其他提供的规范化器或它们的顺序。

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

另一种选择是确保我的自定义 Normalizer 直接位于 ObjectNormalizer 之前。

标准化器由 Symfony Framework Bundle 的配置设置优先级。 可以找到列出的优先级 here

知道可以定义自己的优先级以在 service.yaml 中需要的地方放置 CustomNormalizer:

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