Heim  >  Artikel  >  PHP-Framework  >  Analysieren Sie das Funktionsprinzip des Laravel-Ereignissystems

Analysieren Sie das Funktionsprinzip des Laravel-Ereignissystems

藏色散人
藏色散人nach vorne
2021-12-29 14:46:062119Durchsuche

Die folgende Tutorial-Kolumne von Laravel wird Ihnen das Funktionsprinzip des Laravel-Ereignissystems vorstellen. Ich hoffe, es wird für alle hilfreich sein!

Registrieren Sie sich in EventServiceProvider (app/Providers/EventServiceProvider.php)

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

Verwenden Sie die Befehlszeile, um Ereignisse und Listener zu generieren

Zwei Dateien werden zu diesem Zeitpunkt generiert

1 App /Events/Test.php (Ereignis)

Ereignis bearbeiten
$ php artisan event:generate

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

Listener bearbeiten
<?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');
  }}

Ereignisse

<?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;
 }}

Allgemeine Befehle

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

Die neuesten fünf Laravel-Video-Tutorials

Das obige ist der detaillierte Inhalt vonAnalysieren Sie das Funktionsprinzip des Laravel-Ereignissystems. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:learnku.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen