<?php
function event(...$args): mixed { return null; }
class Model {}
trait HasEvents
{
/** @var array<string,class-string> */
protected array $dispatchesEvents = [];
protected function fireResourceEvent(string $event, Model $model, mixed ...$args): void
{
$class = $this->dispatchesEvents[$event] ?? null;
if ($class === null) {
return;
}
event(new $class($model, ...$args));
}
}