symfony2实体上的PHP多重继承。正确的方法

时间:2013-07-16 14:01:13

标签: php oop symfony multiple-inheritance

我有2个抽象类:AbstractCommentable(注释方法)和AbstractImaging(管理图像的实体方法)。

有些课程已经有了:

class Trip extends AbstractImaging {/** some stuff **/}
class Marker extends AbstractImaging {/** some stuff **/}
class Gastronomy extends AbstractImaging {/** some stuff **/}

但我想将AbstractCommentable添加到这个类......

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

您必须让AbstractImaging已经延长AbstractCommentable或其他方式......我建议您不要这样做。

由于可能存在冲突,多重继承在PHP中只能是线性的。

你做不了......

class Whatever extends AbstractImaging, AbstractCommentable

简单方法:

如果您使用的是PHP 5.4+,则可以使用特征将CommentableInterface方法添加到您的实体。

复杂的方式:

创建一个注释,让一个doctrine-listener创建一个添加可注释方法的代理类。