如何告诉Doctrine2实体管理器默认使用继承的类而不是生成的类?
在我的新sf2应用程序中,我将现有数据库中的所有实体生成到/src/Package/Bundle/DataBundle/Entity
- 当然我也希望生成表单,所以我需要我的外键关系{{1}方法,我不想把它们放到那些生成的文件中,因为它们被覆盖(是的,它们也会被备份到一个额外的文件中,所以我的更改不会丢失,但手动合并文件不是我想要的)。
所以我添加了新的类到__toString()
继承所有实体,但是使用/src/Package/Bundle/DataBundle/Model
方法,并且未来肯定会进行其他一些调整。但是现在,当我致电__toString()
时 - 我得到$entity = $em->getRepository('PackageDataBundle:Customer')->find($id);
而不是/src/Package/Bundle/DataBundle/Entity/Customer
的实例..
我想从sf1获得行为,其中所有自定义工作都在继承的类中完成,生成的是“基础”类,可以在架构更新时随时更新,不会被触及否则..
我希望有一些配置..
也许作为奖励,我想让我的命名惯例变成:将/src/Package/Bundle/DataBundle/Model/Customer
作为“摘要”生成一个而Model
作为实际使用的
感谢。
答案 0 :(得分:2)
我想从sf1获得行为,其中所有自定义工作都在继承的类中完成,生成的是“基础”类,可以在架构更新时随时更新,不会被触及否则..
为了您所描述的目的,您应该使用Propel ORM - 在Symfony-1.4中就是这样,并且对于使用Propel 1.6的Symfony-2.0变得更加灵活。 Symfony-2.0中的well documented,easily installed和naturally used
答案 1 :(得分:0)
也许我误解了你的问题,但是从Propel到Doctrine我也很失望,因为没有办法让那些“脏”的自动生成的代码远离我的逻辑。 我不知道现在对你来说有多重要,但我现在正在编写一个实现这种生成风格的简单包。
$ app/console doctrine:generate:entities СompanySomeBundle --propel-style=true
Generating entities for bundle "СompanySomeBundle"
> backing up User.php to User.php~
> generating Сompany\SomeBundle\Entity\Base\User
> generating Сompany\SomeBundle\Entity\User
https://github.com/madesst/MadesstDoctrineGenerationBundle
PS:抱歉我的英文= /