25 lines
593 B
PHP
25 lines
593 B
PHP
|
<?php
|
||
|
|
||
|
namespace Ulmus;
|
||
|
|
||
|
trait EventTrait
|
||
|
{
|
||
|
public array $eventList = [];
|
||
|
|
||
|
public function eventRegister(object $event) : void
|
||
|
{
|
||
|
$this->eventList[] = $event;
|
||
|
}
|
||
|
|
||
|
public function eventFromType(string $type) : array
|
||
|
{
|
||
|
return array_filter($this->eventList, fn($ev) => $ev instanceof $type);
|
||
|
}
|
||
|
|
||
|
public function eventExecute(string $type, ...$arguments) : void
|
||
|
{
|
||
|
foreach($this->eventFromType($type) as $event) {
|
||
|
call_user_func_array([ $event, 'execute'], $arguments);
|
||
|
}
|
||
|
}
|
||
|
}
|