次の要件でバンドルを実装するスマートな方法を見つけようとしています。
- という名前のロジックを持つバンドルがあります
LogicABundle
- 私は、デザインと呼ばれるメニューと共通のものを含むバンドルを持っています
AppBundle
LogicBBundle
エンティティに関連するいくつかのエンティティを含むロジックを含むLogicABundle
別のバンドルがあります
このセットアップから 2 つのアプリケーションを「デプロイ」できるようにしたいことはわかっています。
- アプリケーション 1 は
LogicABundle
andを使用しますAppBundle
- 2 つ目は を使用し
LogicABundle
、LogicBBundle
AppBundle
問題は、2 番目のアプリケーションでは、いくつかのエンティティを から に関連付ける必要があることですLogicABundle
。これにより、エンティティが を指しLogicBBundle
ている場合、最初の「展開」オプションが壊れます。LogicABundle
LogicBBundle
これら 2 つの異なるアプリケーションを個別に展開するスマートなソリューションはありますか? わかりやすくするために、次の例を示します。
use Doctrine\ORM\Mapping as ORM;
/**
* My\LogicABundle\Entity\Game
*
* @ORM\Entity
*
*/
class Game
{
/**
* @var integer $id
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string $title
*
* @ORM\Column(name="title", type="string")
*/
private $title;
/**
*
* @var Message
* @ORM\ManyToOne(targetEntity="\My\LogicBBundle\Entity\Message", inversedBy="games")
* @ORM\JoinColumn(name="messag_id", referencedColumnName="id", nullable=false)
* @Assert\NotNull()
*/
private $message;
}
スタンドアロン アプリケーションで Game クラスを LogicABundle のみで使用できるようにしたいと考えています。2 つ目のアプリケーションでは、メッセージ関係を持つゲーム エンティティが必要です。