Laravel事件Event
生活随笔
收集整理的这篇文章主要介绍了
Laravel事件Event
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
适用场景:记录文章浏览量
php artisan make:event 事件名示例:
php artisan make:event MyEventLaravel目录\app\Events已经生成MyEvent.php文件
<?phpnamespace App\Events;use App\Events\Event; use Illuminate\Queue\SerializesModels; use Illuminate\Contracts\Broadcasting\ShouldBroadcast;class MyEvent extends Event {use SerializesModels;/*** Create a new event instance.** @return void*/public function __construct(){//}/*** Get the channels the event should be broadcast on.** @return array*/public function broadcastOn(){return [];} }事件必须有监听者,我们先在\app\Providers目录下找到EventServiceProvider.php文件,该文件内有一个Events-Listeners数组来保存事件和监听者的映射关系。
protected $listen = ['App\Events\MyEvent' => ['App\Listeners\MyListener1','App\Listeners\MyListener2'] ];这里,我们让一个事件有两个监听者,使用artisan控制台自动生成php文件
php artisan event:generateLaravel\app\Listeners目录下已经生成了MyListener1.php和MyListener2.php
问题来了,我们怎么触发这个事件?
这里借用我们上一篇博客说的Console,来测试这个事件,如果你对Console不熟,可以看http://www.cnblogs.com/sweng/p/6358919.html
对Check类中修改handle()函数,使用Event::fire(new MyEvent())触发事件,实际上是传入一个Event对象
<?phpnamespace App\Console\Commands;use Illuminate\Console\Command;// use Illuminate\Support\Facades\Event; use App\Events\MyEvent;class Check extends Command {/*** The name and signature of the console command.** @var string*/protected $signature = 'check';/*** The console command description.** @var string*/protected $description = 'Command description';/*** Create a new command instance.** @return void*/public function __construct(){parent::__construct();}/*** Execute the console command.** @return mixed*/public function handle(){//echo 'checking...';Event::fire(new MyEvent());} }
转载于:https://www.cnblogs.com/sweng/p/6358961.html
与50位技术专家面对面20年技术见证,附赠技术全景图总结
以上是生活随笔为你收集整理的Laravel事件Event的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: struts2常用标签
- 下一篇: CTAssetsPickerContro