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 $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;
}
public function handlesEvent(object $event): bool
return array_key_exists(get_class($event), $this->handlesEvents());
public function methodNameThatHandlesEvent(object $event): string
$methodName = $this->handlesEvents()[get_class($event)] ?? '';
if ($methodName !== '') {
return $methodName;
$wildcardMethod = $this->handlesEvents()['*'] ?? '';
if ($wildcardMethod !== '') {
return $wildcardMethod;
return '';
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: