Esta biblioteca es un diseño para ayudarlo a construir su aplicación con un enfoque de desarrollo de diseño de dominio.
Está bien integrado con:
Pero puede usarlo con cualquier proyecto PHP.
Aquí hay algunas diapositivas que explican cómo llegamos allí.
Eventos de dominio:
Esta biblioteca se compila para permitirle usar modelos de doctrina como modelo de dominio. Esto tiene algún costo: ya no puede instanciar el modelo de dominio a mano. Esto significa que necesita una fábrica para cualquiera de los usos de su modelo de dominio.
Este componente proporciona la implementación para Symfony Serializer y Doctrine. Para sus propias necesidades, debe usar la clase (Servicio si usa el paquete) 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
}
}
Como su modelo necesita un despachador, debe llamar al método setDispatcher()
cada vez que cree una nueva instancia de su modelo. Para evitar hacer esto manualmente, puede usar el Instantiator
que proporciona la biblioteca.
No usa el constructor para agregar el despachador porque en PHP puede crear objetos sin el constructor. Por ejemplo, eso es lo que hace la doctrina.
Usa el paquete:
<?php
// config/bundles.php
return [
// ...
Biig Component Domain Integration Symfony DomainBundle ::class => [ ' all ' => true ],
];
Obtenga más información sobre la integración de Symfony
Versión | Estado | Documentación | Versión de Symfony | Versión php |
---|---|---|---|---|
1.x | Mantenido | V1 | '> = 3.3 && <5' | '> = 7.1' |
2.x | El último | V2 | '> = 4.3' | '> = 7.1' |