Php 条令实体中的重用方法

Php 条令实体中的重用方法,php,oop,symfony,doctrine-orm,Php,Oop,Symfony,Doctrine Orm,我在Symfony 2框架中有3个实体: 机会 公司 使用者 这些实体有一个共同的属性,因为它们有许多关系: /** * @ORM\ManyToMany(targetEntity="Fccq\CoreBundle\Entity\Tag", cascade={"persist"}) */ private $tags; 还有一些方法: /** * @param array $tags */ public function addListTags($tags) { foreac

我在Symfony 2框架中有3个实体:

  • 机会
  • 公司
  • 使用者
这些实体有一个共同的属性,因为它们有许多关系:

 /**
 * @ORM\ManyToMany(targetEntity="Fccq\CoreBundle\Entity\Tag", cascade={"persist"})
 */
private $tags;
还有一些方法:

/**
 * @param array $tags
 */
public function addListTags($tags)
{
    foreach($tags as $tag)
    {
        $this->addTag($tag);
    }
}

/**
 * @param Tag $tag
 */
public function addTag(\Fccq\CoreBundle\Entity\Tag $tag)
{
    if (!$this->tags->contains($tag)) {
        $this->tags->add($tag);
    }
}

/**
 * @param Tag $tag
 */
public function removeTag(\Fccq\CoreBundle\Entity\Tag $tag)
{
    $this->tags->removeElement($tag);
}
我不希望这种代码重复,所以我开始实现“traits”。工作正常,但PHP5.3(我的生产环境)不支持它。 简单继承不是一个好的解决方案,因为我的用户实体已经从另一个类继承了

有什么想法吗?
Thx

如果您仍然使用继承,将这些函数放在一个基本标记类中,并按您的机会、公司和用户扩展的类进行扩展,该怎么办?我不知道其他解决方案,因为您不能在实体类中使用helper函数(或者至少不建议这样做)。也许其他人还有一些想法。

你可能是对的,但如果这是唯一的解决方案,我更喜欢代码复制,因为级联继承没有意义。。。