Perpustakaan ini adalah desain untuk membantu Anda membangun aplikasi Anda dengan pendekatan pengembangan desain domain.
Ini terintegrasi dengan:
Tetapi Anda dapat menggunakannya dengan proyek PHP apa pun.
Berikut adalah beberapa slide yang menjelaskan bagaimana kita sampai di sana.
Acara domain:
Perpustakaan ini dibangun untuk memungkinkan Anda menggunakan model doktrin sebagai model domain. Ini memiliki beberapa biaya: Anda tidak dapat membuat model domain dengan tangan lagi. Ini berarti bahwa Anda membutuhkan pabrik untuk penggunaan model domain Anda.
Komponen ini memberikan implementasi untuk Symfony Serializer dan Doktrin. Untuk kebutuhan Anda sendiri, Anda harus menggunakan kelas (Layanan jika Anda menggunakan bundel) 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
}
}
Karena model Anda membutuhkan dispatcher, Anda perlu memanggil metode setDispatcher()
setiap kali Anda membuat instance baru dari model Anda. Untuk menghindari melakukan ini secara manual, Anda dapat menggunakan Instantiator
yang disediakan perpustakaan.
Itu tidak menggunakan konstruktor untuk menambahkan dispatcher karena dalam PHP Anda dapat membuat objek tanpa konstruktor. Misalnya, itulah yang dilakukan doktrin.
Gunakan bundel:
<?php
// config/bundles.php
return [
// ...
Biig Component Domain Integration Symfony DomainBundle ::class => [ ' all ' => true ],
];
Pelajari lebih lanjut tentang integrasi Symfony
Versi | Status | Dokumentasi | Versi Symfony | Versi PHP |
---|---|---|---|---|
1.x | Dipertahankan | v1 | '> = 3.3 && <5' | '> = 7.1' |
2.x | Terbaru | v2 | '> = 4.3' | '> = 7.1' |