在 symfony2 中,学说生成器为每个实体创建一个类。所以向这些实体添加新行为的方法(如果我错了,请纠正我)是直接在那些生成的类中添加新的自定义方法。
我更喜欢 symfony 1 的方法,其中创建了一个空的子类并将自定义方法放置在那里。但我正在努力在 Symfony2 中使用这种方法。
有没有办法生成(然后能够更新)这个“基础实体和子类”结构?
如果不是,为什么将所有生成的和自定义的代码放在一起更好?
编辑
我一直在使用实体生成器,包括 generate:doctrine:entity 和教义:generate:entities (它们是不同的命令),并分析你的答案。似乎将所有内容放在同一个文件中的另一个缺点是实体的更新/重新生成(例如,当添加新字段时,需要重新生成 getter 和 setter)。使用这些命令,您可以设置“regenerateEntityIfExists”,但这会覆盖旧文件,删除您的自定义代码。
我正在考虑扩展 Doctrine\Bundle\DoctrineBundle\Command\GenerateEntitiesDoctrineCommand\GenerateEntitiesDoctrineCommand 以构建旧结构(具有生成代码的基类和自定义代码的空子类),它允许将自定义代码与生成的代码分开,能够更新实体以添加/删除字段等。
但我仍然想知道为什么开发团队决定将 Symfony1 中使用的方法更改为这种新方法。有哪些优势?
谢谢!