Home  >  Article  >  PHP Framework  >  Analyze the operating principle of Laravel event system

Analyze the operating principle of Laravel event system

藏色散人
藏色散人forward
2021-12-29 14:46:062118browse

The following tutorial column from Laravel will introduce you to the operating principles of the Laravel event system. I hope it will be helpful to you!

Register in EventServiceProvider (app/Providers/EventServiceProvider.php)

protected $listen = [
        Registered::class => [
            SendEmailVerificationNotification::class,
        ],
        'App\Events\Test' => [
            'App\Listeners\EventListener',
        ],
    ];

Use the command line to generate events and listeners

$ php artisan event:generate

Two files will be generated at this time

1, App/Events/Test.php (event)

Edit event

<?php

namespace App\Events;use App\Models\User;use Illuminate\Broadcasting\Channel;use Illuminate\Broadcasting\InteractsWithSockets;use Illuminate\Broadcasting\PresenceChannel;use Illuminate\Broadcasting\PrivateChannel;use Illuminate\Contracts\Broadcasting\ShouldBroadcast;use Illuminate\Foundation\Events\Dispatchable;use Illuminate\Queue\SerializesModels;class Test{
  use Dispatchable, InteractsWithSockets, SerializesModels;

  /**
 * Create a new event instance. * * @return void
 */  public function __construct($id)
 {  
     echo &#39;触发事件成功!---------&#39;.$id;
     $this->id = $id;
  }

  /**
 * Get the channels the event should broadcast on. * * @return \Illuminate\Broadcasting\Channel|array
 */  public function broadcastOn()
 {  return new PrivateChannel('channel-name');
  }}

2, app/Listeners/EmailVerified.php (listener)

Edit listener

<?php

namespace App\Listeners;
use App\Events\Test;use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
class EventListener{
  /**
 * Create the event listener. * * @return void
 */  public function __construct()
 {  //
  }

  public function handle(Test $event)
 {  
     echo &#39;监听成功!监听值:&#39;.$event->id;
 }}

Trigger events in the controller

public function test1(){
 event(new Test('11111111'));
 return '测试事件系统';}

Common commands

php artisan event:generate
php artisan make:event UserRegisteredEvent
php artisan make:listener SendMailListener --event="UserRegisteredEvent"

Related recommendations:The latest five Laravel video tutorial

The above is the detailed content of Analyze the operating principle of Laravel event system. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:learnku.com. If there is any infringement, please contact admin@php.cn delete