laravel事件创建以及使用

来源:互联网 发布:淘宝联盟账号注册 编辑:程序博客网 时间:2024/05/07 13:34

首先我们可以使用最快的方式创建一个我们的事件,找到App\Providers\EventServiceProvider;

在这个数组

 protected $listen = [        'App\Events\SomeEvent' => [            'App\Listeners\EventListener',        ],        'App\Events\PupUserchange'=>[        'App\Handlers\Events\UserManagerd'        ],    ];

里面添加自己定义的事件,事件放在App\Events文件夹下面,处理事件的类可以随意定义文件夹,
或者使用laravel自带的App\Listeners文件夹,配置好了之后使用laravel命令
php artisan event:generate
命令回车之后事件就自动生成了。
5.0版本的还可以使用2条命令进行生成事件,还可以分开执行创建事件。
php artisan make:event PupUserchange(事件的类名)
php artisan handler:event UserManagerd(事件处理类) --event=PupUserchange
事件就已经生成了。
事件类PupUserchange .php:
<?phpnamespace App\Events;use App\Events\Event;use Illuminate\Queue\SerializesModels;use Illuminate\Contracts\Broadcasting\ShouldBroadcast;use App\models\Users;class PupUserchange extends Event{    use SerializesModels;    public $user;    /**     * Create a new event instance.     *     * @return void     */    public function __construct(Users $users)    {        //        $this->user = $users;           }    /**     * Get the channels the event should be broadcast on.     *     * @return array     */    public function broadcastOn()    {        return  [];    }}
事件操作->事件处理类:

<?phpnamespace App\Handlers\Events;use App\Events\PupUserchange;use Illuminate\Queue\InteractsWithQueue;use Illuminate\Contracts\Queue\ShouldQueue;use App\models\Users;class UserManagerd{    /**     * Create the event handler.     *     * @return void     */    public function __construct()    {        //    }    /**     * Handle the event.     *     * @param  PupUserchange  $event     * @return void     */    public function handle(PupUserchange $event)    {               echo "<pre>";        print_r($event->user->toArray());    }}

控制器调用事件:

  Event::fire(new PupUserchange(Users::find(2)));

//事件handle处理结果打印了结果集
Array(    [id] => 2    [name] => gxx    [email] => admin@admin.com    [password] => 123456    [remember_token] => 121545    [created_at] => -0001-11-30 00:00:00    [updated_at] => -0001-11-30 00:00:00)

事件从创建到 处理已经完成了。




0 0