The --method flag in the above comment is optional, and if not provided, the handler will register with the handle method.
Even the --event is also optional but we strongly advise to always provide it, because when it's not provided, yuga-auto-events will be the registered event
If the provided event name is a valid php class, the class will be injected in the event method provided as below.
<?php
/**
* This file was auto-generated.
*/
namespace App\Handlers;
use App\Events\Test;
use Yuga\EventHandlers\HandlerInterface;
class WhenAuthenticated implements HandlerInterface
{
/**
* Event Handler Logic here
* @param \Yuga\Events\Dispatcher $event
* @return mixed
*/
public function handle($event)
{
return null;
}
/**
* Your Event Handler Logic here
* @param App\Events\UserAuthenticated $event
* @return mixed
*/
public function isAuthentic(UserAuthenticated $event)
{
return null;
}
}
And the event class should be as below:
<?php
namespace App\Events;
use Yuga\Events\Dispatcher\Dispatcher;
class UserAuthenticated extends Dispatcher
{
/**
* Event Name
*/
protected $name = 'on:userauthenticated';
}
In which case you can no longer dispatch the event like so
event('on:userauthenticated');
inside of any controller or view-model for that matter, this is because of the contract provided in the event handler, so we are left with the option of: