DomainComponent
[2.1.4] - 2020-09-01
このライブラリは、ドメイン設計開発アプローチを使用してアプリケーションを構築するのに役立つ設計です。
とよく統合されています:
ただし、PHPプロジェクトで使用できます。
ここに私たちがそこにたどり着く方法を説明するいくつかのスライドがあります。
ドメインイベント:
このライブラリは、Doctrineモデルをドメインモデルとして使用できるようにするための構築です。これにはある程度のコストがかかります。ドメインモデルを手作業でインスタンス化することはできません。これは、ドメインモデルの使用のいずれかに工場が必要であることを意味します。
このコンポーネントは、Symfony SerializerとDoctrineの実装を提供します。独自のニーズについてはBiigComponentDomainModelInstantiatorInstantiatorクラス(バンドルを使用する場合はサービス)を使用する必要があります。
composer require biig/domain class YourModel extends DomainModel
{
public const CREATION = ' creation ' ;
public function __construct ()
{
$ this -> dispatch ( new DomainEvent ( $ this ), self :: CREATION );
}
} class DomainRule implements DomainRuleInterface
{
public function on ()
{
return YourModel :: CREATION ;
}
public function execute ( DomainEvent $ event )
{
// Do Something on your model creation
}
}モデルにはディスパッチャーが必要なため、モデルの新しいインスタンスを作成するたびにsetDispatcher()メソッドを呼び出す必要があります。これを手動で行うことを避けるために、ライブラリが提供するInstantiatorを使用できます。
PHPではコンストラクターなしでオブジェクトを作成できるため、コンストラクターを使用してディスパッチャーを追加しません。たとえば、それが教義がしていることです。
バンドルを使用してください:
<?php
// config/bundles.php
return [
// ...
Biig Component Domain Integration Symfony DomainBundle ::class => [ ' all ' => true ],
];Symfony Integrationの詳細をご覧ください
| バージョン | 状態 | ドキュメント | Symfonyバージョン | PHPバージョン |
|---|---|---|---|---|
| 1.x | 維持されています | V1 | '> = 3.3 && <5' | '> = 7.1' |
| 2.x | 最新 | V2 | '> = 4.3' | '> = 7.1' |