Laravel事件Event
来源:互联网 发布:Python 线程锁 编辑:程序博客网 时间:2024/05/27 14:13
适用场景:记录文章浏览量
1
php artisan
make
:event 事件名
示例:
1
php artisan make:event MyEvent
Laravel目录\app\Events已经生成MyEvent.php文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
namespace
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数组来保存事件和监听者的映射关系。
1
2
3
4
5
6
protected
$listen
= [
'App\Events\MyEvent'
=> [
'App\Listeners\MyListener1'
,
'App\Listeners\MyListener2'
]
];
这里,我们让一个事件有两个监听者,使用artisan控制台自动生成php文件
1
php artisan event:generate
Laravel\app\Listeners目录下已经生成了MyListener1.php和MyListener2.php
问题来了,我们怎么触发这个事件?
这里借用我们上一篇博客说的Console,来测试这个事件,如果你对Console不熟,可以看http://www.cnblogs.com/sweng/p/6358919.html
对Check类中修改handle()函数,使用Event::fire(new MyEvent())触发事件,实际上是传入一个Event对象
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
namespace
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());
}
}
阅读全文
0 0
- laravel Event事件
- Laravel事件 event
- Laravel事件Event
- laravel event事件 讲解
- laravel 实现邮箱event事件发送
- 每天laravel-20160710|Event
- laravel Event执行顺序
- laravel--事件
- 事件Event
- event事件
- event事件
- 事件(event)
- 事件(event)
- Event事件
- event 事件
- 事件event
- Event 事件
- 事件(Event)
- Intellij IDEA插件
- leetcode16. 3Sum Closest
- css flex demo
- ajax文件上传
- HTML DOM之标签操作方法
- Laravel事件Event
- 关于removeCallbacks不能移除消息的问题
- mac上使用Aria2,完全摆脱百度云盘的限速10kb/s
- 跨域问题的解决
- 5个必须掌握的maven命令
- 魅族虚拟按键遮挡问题
- Laravel Migrate
- Laravel控制器和视图
- sendmail 简单配置zabbix