Создать объединенные файлы классов сущностей с помощью symfony2 - PullRequest
0 голосов
/ 10 января 2012

Я немного застрял с моим плохим знанием 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 голосов
/ 02 февраля 2012

Теперь получилось с некоторыми изменениями в дизайне, я могу решить мою проблему с помощью простого наследования классов. Таким образом, нет необходимости в объединении классов во время разработки.

...