joschi127/doctrine-entity-override-bundle

Symfony 扩展包,允许通过继承覆盖实体

v0.7.2 2019-10-05 22:55 UTC

README

Build Status

Symfony 扩展包,允许通过继承覆盖实体

配置

添加到 app/config/config.yml

# override entities
joschi127_doctrine_entity_override:
    overridden_entities:
        # Keep in mind: if you are using multi level inheritance, you have to use the top most super class on the
        # left side
        OriginalBundle\Entity\Example: CustomizedBundle\Entity\Example

提示

  • 如果您使用多级继承,您必须在 overridden_entities 配置下使用最顶层的超类。
  • 如果您使用多级继承,中间类的属性必须为受保护的,否则您将收到一个 ReflectionException,指出 Property ...::$propertyName 不存在
  • 建议将原始实体定义为 MappedSuperclass。如果您是自己的代码,则可以这样做。如果您想扩展其他第三方实体,这通常应该工作。但是,映射的一部分将由该包的 LoadORMMetadataSubscriber 内部重新生成,并且至少一些 Doctrine 映射功能可能不受支持,您可能会遇到问题。
  • 不支持使用 @ORM\AttributeOverrides,而是只需在您的自定义实体类中覆盖属性,并像通常一样在您的自定义实体中添加 ORM 映射。然后该包将卸载原始映射配置,并仅使用您的自定义映射。
  • 请查看 Tests/Functional/src 文件夹 以获取一些示例代码。