Esta biblioteca é um design para ajudá -lo a criar seu aplicativo com uma abordagem de desenvolvimento de design de domínio.
Está bem integrado a:
Mas você pode usá -lo com qualquer projeto PHP.
Aqui estão alguns slides que explicam como chegamos lá.
Eventos de domínio:
Esta biblioteca está construída para permitir que você use modelos de doutrina como modelo de domínio. Isso tem algum custo: você não pode mais instanciar o modelo de domínio manualmente. Isso significa que você precisa de uma fábrica para qualquer uso do seu modelo de domínio.
Este componente fornece a implementação para o serializador e doutrina do Symfony. Para suas próprias necessidades, você deve usar a classe (serviço se usar o pacote) 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 seu modelo precisa de um despachante, você precisa chamar o método setDispatcher()
sempre que você criar uma nova instância do seu modelo. Para evitar fazer isso manualmente, você pode usar o Instantiator
que a biblioteca fornece.
Ele não usa o construtor para adicionar o despachante porque, no PHP, você pode criar objetos sem o construtor. Por exemplo, é isso que a doutrina faz.
Use o pacote:
<?php
// config/bundles.php
return [
// ...
Biig Component Domain Integration Symfony DomainBundle ::class => [ ' all ' => true ],
];
Saiba mais sobre a integração do Symfony
Versão | Status | Documentação | Versão do Symfony | Versão php |
---|---|---|---|---|
1.x | Mantido | v1 | '> = 3.3 && <5' | '> = 7,1' |
2.x | Mais recente | v2 | '> = 4.3' | '> = 7,1' |