for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Spatie\EventProjector\EventHandlers;
use Exception;
trait HandlesEvents
{
public function handlesEvents(): array
return collect($this->handlesEvents ?? [])
handlesEvents
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
class MyClass { } $x = new MyClass(); $x->foo = true;
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion:
class MyClass { public $foo; } $x = new MyClass(); $x->foo = true;
->mapWithKeys(function ($methodName, $eventClass) {
if (is_numeric($eventClass)) {
$eventClass = $methodName;
$methodName = 'on' . ucfirst(class_basename($eventClass));
}
return [$eventClass => $methodName];
})
->toArray();
public function handlesEventClassNames(): array
return array_keys($this->handlesEvents());
public function methodNameThatHandlesEvent(object $event): string
$handlesEvents = $this->handlesEvents();
$eventClass = get_class($event);
return $handlesEvents[$eventClass] ?? '';
public function handleException(Exception $exception)
report($exception);
In PHP it is possible to write to properties without declaring them. For example, the following is perfectly valid PHP code:
Generally, it is a good practice to explictly declare properties to avoid accidental typos and provide IDE auto-completion: