laravel事件创建以及使用
首先我们可以使用最快的方式创建一个我们的事件,找到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:
<?php
namespace 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 [];
}
}
事件操作-> 事件处理类:
<?php
namespace 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
)
事件从创建到 处理已经完成了。
还没有评论,来说两句吧...