Эта библиотека является дизайном, чтобы помочь вам создать ваше приложение с помощью подхода к разработке дизайна домена.
Это хорошо интегрировано с:
Но вы можете использовать его с любым проектом PHP.
Вот несколько слайдов, которые объясняют, как мы туда добираемся.
Доменные события:
Эта библиотека построена, чтобы позволить вам использовать модели доктрины в качестве модели домена. Это имеет некоторую стоимость: вы больше не можете создавать доменную модель вручную. Это означает, что вам нужна фабрика для любого из использования вашей модели домена.
Этот компонент обеспечивает реализацию для Symfony Serializer и доктрины. Для ваших собственных потребностей вы должны использовать сервис (служба, если вы используете пакет) 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
Версия | Статус | Документация | Symfony версия | PHP версия |
---|---|---|---|---|
1.x | Поддерживается | v1 | '> = 3.3 && <5' | '> = 7.1' |
2.x. | Последний | v2 | '> = 4,3' | '> = 7.1' |