Entsprechend der L5 docs werden Events/Listener-Paare über Klassen erstellt. Aber nach ein paar kurzen Experimenten habe ich festgestellt, dass Sie auch Strings verwenden und die Event-Klasse überspringen können, was das Erstellen einfacher macht, weniger fehleranfällig ist (da keine Event-Klasse erstellt werden muss) und aussagekräftiger ist.String Ereignisse vs Klassen Ereignisse in L5.2, was ist besser?
EventServiceProvider
// Class
protected $listen = [
'App\Events\MyEvent' => [
'App\Listeners\MyListener',
],
];
... becomes ...
// String
// Replace App\Events\MyEvent with a string which describes your event
protected $listen = [
'eventaction' => [
'App\Listeners\MyListener',
],
];
die String-Version über Verwendung bedeutet, dass die Datei App\Events\MyEvent
nicht erstellt werden muss. Das ist eine Datei weniger, um die man sich kümmern muss, und eine Zeichenfolge für das Ereignis anstelle einer Klasse zu haben, macht es leichter, sich daran zu erinnern.
App \ Hörer \ MyListener
// Class
public function handle(MyEvent $event)
{
// Do something
}
... becomes ...
// String
// Remove the data type in $event so it'll accept a string
public function handle($event)
{
// Do something
}
Feuer das Ereignis die gleiche Art und Weise würden Sie eine Klasse nur diesmal den String-Label verwenden.
Meine Frage ist, gibt es bestimmte Instanzen, in denen eine Klasse verwendet werden sollte, während in anderen Fällen eine Zeichenfolge verwendet werden könnte? Welchen zusätzlichen Nutzen hat die Verwendung von Event-Klassen (MyEvent
) über String-Events?