でマージされたエンティティ・クラス・ファイルを生成します。ここに私がやろうとしていることがあります:同じクラスのクラス定義を含む2つの異なるファイルがあります。私はこれらの2つを新しいクラスファイルにマージしたい。 私はSymfony2の教義との私の知識不足で立ち往生少しだSymfony2の
I既存のエンティティクラスファイル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;
}
}
を私は一緒にこれらの2つ(ないマージすることができますどのように実行時に、ちょうどsymfonyのアプリケーションのインストール中に - foobar:install
のようなsymfonyのコンソールコマンドを使用して行うことができる)ので、私はプロパティを含むファイルFooExtended.php
に書き込まれ、マージされたクラスFoo
を取得し、両方のクラスのメソッドと教義のアノテーションは保存されていますか?
は、箱から出して、このようなsymfonyの(またはDoctrineBundle内)のサポートスタッフをしていますか?それとも、誰かが私に正しい方向に向けることができますか?
?あなたがこれをしたいと思っているのを知らずにこれに答えるのは難しいです。 2番目のクラスだけが最初のクラスを拡張できないのですか? – calumbrodie
インストール中にプログラムで生成される必要があります。拡張機能はいくつかの理由からここでの選択肢ではありません(簡単に説明するのは難しい)。 – acme
PHP自体は複数のクラス継承をサポートしていないので、おそらくいいです。とにかく実行時にそれらを1つのクラスにする必要はありませんか? – solarc