首页后端开发JAVALaravel 事件

Laravel 事件

时间2023-03-24 17:24:49发布访客分类JAVA浏览846
导读:常用命令#显示系统注册的事件和监听器的列表 php artisan event:list生成事件和监听器一、 手动生成单个事件和监听器 php artisan make:event PublishArticlesEventphp artis...

常用命令

#显示系统注册的事件和监听器的列表
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 中列出的、尚不存在的任何事件或侦听器

如下,PublishArticlesEventPublishArticlesListener是不存在的

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.phpapp/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);
    

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

phplaravelapp事件系统

若转载请注明出处: Laravel 事件
本文地址: https://pptw.com/jishu/138.html
IDEA 重写方法时带注释 Typecho博客网站底部添加网站已运行时间教程(typecho博客插件)

游客 回复需填写必要信息