使用symfony2生成合并的实体类文件

时间:2012-01-10 16:08:41

标签: class symfony doctrine-orm

我对Symfony2和Doctrine的不了解有点困惑。这是我正在尝试做的事情:我有两个不同的文件,包含同一个类的类定义。我想将这两个合并到一个新的类文件中。

我有一个现有的实体类文件Foo.php

/**
 * @ORM\Entity
 * @ORM\Table(name="foo")
 */
class Foo
{
    /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue
     *
     * @var int
     */
    protected $id;  

    /**
     * @ORM\Column(type="string")
     *
     * @var string
     */
    protected $name;

    /**
     * @param string $name
     * @return void
     */
    public function setName($name)
    {
        $this->name = (string) $name;
    }

    /**
     * @return string name
     */
    public function getName()
    {
        return $this->name;
    }   

    protected function someMagic($in) {
        die('no magic happens.');
    }
}

和第二个具有相同名称的实体类文件Foo.php:

/**
 * @ORM\Entity
 * @ORM\Table(name="foo")
 */
class Foo
{
    /**
     * @ORM\Column(type="string")
     *
     * @var string
     */
    protected $color;

    /**
     * @param string $name
     * @return void
     */
    public function setColor($color)
    {
        $this->color = $this->someColorMagic($color);
    }

    /**
     * @return string name
     */
    public function getColor()
    {
        return $this->color;
    }   

    protected function someMagic($in) {
        return 'magic: ' . $out;
    }
}   

如何将这两者合并在一起(不是在运行时,只是在安装symfony应用程序时 - 可以使用symfony控制台命令,如foobar:install),所以我得到一个合并的类Foo到文件FooExtended.php,其中包含两个类的属性和方法以及保留的学说注释?

Symfony(或其中的DoctrineBundle)是否支持开箱即用的东西?或者有人能指出我如何实现这一目标的正确方向?

1 个答案:

答案 0 :(得分:0)

现在结果是设计上的一些变化,我可以通过简单的类继承来解决我的问题。因此,在设计时不需要合并类。