Я немного застрял с моим плохим знанием 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) такие вещи из коробки?Или кто-то может указать мне правильное направление, как это может быть достигнуто?