2012-01-10 9 views
0

でマージされたエンティティ・クラス・ファイルを生成します。ここに私がやろうとしていることがあります:同じクラスのクラス定義を含む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内)のサポートスタッフをしていますか?それとも、誰かが私に正しい方向に向けることができますか?

+0

?あなたがこれをしたいと思っているのを知らずにこれに答えるのは難しいです。 2番目のクラスだけが最初のクラスを拡張できないのですか? – calumbrodie

+0

インストール中にプログラムで生成される必要があります。拡張機能はいくつかの理由からここでの選択肢ではありません(簡単に説明するのは難しい)。 – acme

+0

PHP自体は複数のクラス継承をサポートしていないので、おそらくいいです。とにかく実行時にそれらを1つのクラスにする必要はありませんか? – solarc

答えて

0

それは今私が単純なクラスの継承と私の問題を解決することができる設計にいくつかの変更となりました。したがって、設計時にクラスをマージする必要はありません。コピー/パスタと間違って何

関連する問題