Laravel 事件
事件 laravel
2023-06-13 09:17:39 时间
常用命令
#显示系统注册的事件和监听器的列表
php artisan event:list
生成事件和监听器
一、 手动
生成单个事件和监听器
php artisan make:event PublishArticlesEvent
php artisan make:listener PublishArticlesListener --event=PublishArticlesEvent
2.手动注册注册事件和监听器
root@php-fpm:/var/www/laravel-demo# cat app/Providers/EventServiceProvider.php /**
系统中的事件和监听器的对应关系。
@var array */ protected $listen = [ PublishArticlesEvent::class => [ PublishArticlesListener::class, ], ];
二、自动
生成 EventServiceProvider
中列出的、尚不存在的任何事件或侦听器
如下,PublishArticlesEvent
和PublishArticlesListener
是不存在的
root@php-fpm:/var/www/laravel-demo# cat app/Providers/EventServiceProvider.php
<?php
namespace App\Providers;
use App\Events\PublishArticlesEvent;
use App\Listeners\PublishArticlesListener;
class EventServiceProvider extends ServiceProvider
{
protected $listen = [
PublishArticlesEvent::class => [
PublishArticlesListener::class,
],
];
}
执行
php artisan event:generate
执行成功会自动创建app/Events/PublishArticlesEvent.php
和app/Listeners/PublishArticlesListener.php
然后再修改一下
vi app/Events/PublishArticlesEvent.php
class PublishArticlesEvent
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public Article $article;
public function __construct(Article $article)
{
$this->article=$article;
}
}
vi app/Listeners/PublishArticlesListener.php
class PublishArticlesListener
{
public function __construct()
{
//
}
public function handle(PublishArticlesEvent $event)
{
Log::info("article..");
Log::info($event->article);
}
调度事件
即触发事件,在web应用的控制器中,或控制台命令中都可以调用
$article=Article::query()->first();
//调度事件
PublishArticlesEvent::dispatch($article);
相关文章
- 你根本不懂Javascript(EP5 HTML事件捕获与冒泡)
- 7.29VR行业大事件:FTC起诉Meta 阻止其收购VR健身应用开发商;《VRChat》加入反作弊系统禁用Mod
- JS 滚轮事件实现固定在窗口某个位置的元素显现或隐藏
- Oracle 等待事件 db file async I/O submit 官方解释,作用,如何使用及优化方法
- Oracle 等待事件 pmon timer 官方解释,作用,如何使用及优化方法
- 货拉拉跳车事件司机妻子发声:丈夫已被羁押5个月 不要冤枉一个好人
- Oracle 事件理解和应用(oracle 事件的概念)
- javascriptevent事件解析
- 为body标签和document.body都添加点击事件后仅Firefox弹出了两次
- 关于js注册事件的常用方法
- js事件冒泡实例分享(已测试)
- jsonload处理html页面加载之后的事件