Diese Bibliothek ist Design, mit der Sie Ihre Anwendung mit einem Entwicklungsansatz für Domänendesign aufbauen können.
Es ist gut integriert in:
Sie können es jedoch mit jedem PHP -Projekt verwenden.
Hier sind einige Folien, die erklären, wie wir dorthin gelangen.
Domänenereignisse:
Diese Bibliothek ist erstellt, damit Sie Doktrinmodelle als Domänenmodell verwenden können. Dies hat einige Kosten: Sie können das Domänenmodell nicht mehr von Hand instanziieren. Dies bedeutet, dass Sie eine Fabrik für die Verwendung Ihres Domänenmodells benötigen.
Diese Komponente bietet die Implementierung für Symfony Serializer und Doctrine. Für Ihre eigenen Bedürfnisse sollten Sie die Klasse verwenden (Dienst, wenn Sie das Bundle verwenden) 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
}
}
Da Ihr Modell einen Dispatcher benötigt, müssen Sie die setDispatcher()
-Methode aufrufen, wenn Sie eine neue Instanz Ihres Modells erstellen. Um dies manuell zu vermeiden, können Sie den Instantiator
verwenden, den die Bibliothek bietet.
Der Konstruktor wird nicht verwendet, um den Dispatcher hinzuzufügen, da Sie in PHP Objekte ohne den Konstruktor erstellen können. Zum Beispiel ist das, was die Doktrin tut.
Verwenden Sie das Bundle:
<?php
// config/bundles.php
return [
// ...
Biig Component Domain Integration Symfony DomainBundle ::class => [ ' all ' => true ],
];
Erfahren Sie mehr über Symfony Integration
Version | Status | Dokumentation | Symfony -Version | PHP -Version |
---|---|---|---|---|
1.x | Gepflegt | v1 | '> = 3.3 && <5' | '> = 7.1' |
2.x | Letzte | v2 | '> = 4.3' | '> = 7.1' |