以下は、## laravel #フレームワークチュートリアルコラムからのLaravelイベントと非同期処理の紹介です。困っている友人に役立つことを願っています。
php aritsan make:event Test
イベントとモニタリングlisten は 1 対多の管理です。1 つのイベントが複数の応答イベントに対応します。
$data
属性を定義し、イベントがトリガーされたときに渡されるデータを割り当てます。
public $data; /** * Create a new event instance. * * @return void */ public function __construct($data) { $this->data = $data; }
public function test(){ Test::dispatch('你好事件'); }
php 職人 make:listener TestLisenter
namespace App\Lisenter;use App\Events\Test;class TestLisenter { public function handle(Test $test) { var_dump($test->data); //打印:你好事件 }}
現時点では、ビジネス ロジックを処理するリッスン オブジェクトを作成する必要があります
laravel は 2 つのソリューションを提供します:
$listen 配列情報を EventServiceProvider
に追加します。例:
/** * 应用程序的事件监听器映射 * * @var array */protected $listen = [ 'App\Events\Test' => [ 'App\Listeners\TestListenter', ],];
システムに自動的に処理させ、 traverse 指定されたディレクトリ
を EventServiceProvider
に追加する必要があります:
/** * 确定是否应自动发现事件和侦听器 * * @return bool */public function shouldDiscoverEvents(){ return true;}
/** * 获取应该用于发现事件的监听器的目录 * * @return array */ protected function discoverEventsWithin() { return [ $this->app->path('Lisenter'),//事件关联的监听器目录APP/Lisenters $this->app->path('Lisenter/test'),//事件关联的监听器目录APP/Lisenters/test ]; }
システムは自動的に Listen
と一致します この時点で、イベント プロセスは完了しています。成功しない場合、または遅延キュー、イベントに参加するかどうかの判断、失敗後の処理などのイベント処理について詳しく知りたい場合は、ドキュメント
Laravel のキューに詳しくない場合は、Laravel Jobs を参照してください。
TestListener に ShouldQueue インターフェースを実装するだけです。
こんな感じです。 :
rree以上がLaravelイベントと非同期処理についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。