PHP code example of somnambulist / domain-events
1. Go to this page and download the library: Download somnambulist/domain-events library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once ('vendor/autoload.php' );
somnambulist / domain-events example snippets
public function __construct ($id, $name, $another, $createdAt)
{
$this ->id = $id;
$this ->name = $name;
$this ->another = $another;
$this ->createdAt = $createdAt;
$this ->raise(new MyEntityCreatedEvent(['id' => $id, 'name' => $name, 'another' => $another]));
}
private function __construct ($id, $name, $another, $createdAt)
{
$this ->id = $id;
$this ->name = $name;
$this ->another = $another;
$this ->createdAt = $createdAt;
$this ->raise(new MyEntityCreatedEvent(['id' => $id, 'name' => $name, 'another' => $another]));
}
public static function create ($id, $name, $another)
{
$entity = new static ($id, $name, $another, new DateTime());
$entity->raise(new MyEntityCreatedEvent(['id' => $id, 'name' => $name, 'another' => $another]));
return $entity;
}
class SomeServiceClass
{
protected $publisher;
public function __construct ($publisher)
{
$this ->publisher = $publisher;
}
public function doSomethingComplicated ()
{
$object = new SomeDomainObject();
$this ->publisher->publishEventsFrom($object);
$object->callSomeMethod();
$object->callSomeOtherMethod();
$object->doSomethingElse();
$this ->publisher->dispatch();
}
}
class EventListener
{
public function onMyEntityCreated (MyEntityCreatedEvent $event)
{
printf(
"New item created with id: %s, name: %s, another: %s" ,
$event->getProperty('id' ),
$event->getProperty('name' ),
$event->getProperty('another' )
);
}
}