laravel 事件處理
事件提供了一個(gè)簡(jiǎn)單的觀察者實(shí)現(xiàn),它允許用戶訂閱和監(jiān)聽web應(yīng)用程序中觸發(fā)的各種事件。laravel中的所有事件類都存儲(chǔ)在 app / events 文件夾中,而偵聽器存儲(chǔ)在 app / listeners 文件夾中。
下面顯示了在您的web應(yīng)用程序中生成事件和偵聽器的工匠命令 -
php artisan event:generate
如上所述,該命令將生成事件和偵聽器到相應(yīng)的文件夾。
事件和監(jiān)聽器為分離web應(yīng)用程序提供了一種很好的方式,因?yàn)橐粋€(gè)事件可以有多個(gè)相互獨(dú)立的監(jiān)聽器。由artisan命令創(chuàng)建的events文件夾包括以下兩個(gè)文件:event.php和someevent.php。他們?cè)谶@里顯示
event.php
namespace app\events; abstract class event{ // }</pre-->如上所述, <strong>event.php</strong> 包含類 <strong>event</strong> 的基本定義,并調(diào)用名稱空間 <strong>app \ events</strong> 。請(qǐng)注意,用戶定義或自定義事件是在此文件中創(chuàng)建的。
<h3>someevent.php</h3>namespace app\events; use app\events\event; use illuminate\queue\serializesmodels; use illuminate\contracts\broadcasting\shouldbroadcast; class someevent extends event{ use serializesmodels; /** * create a new event instance. * * @return void */ public function __construct(){ // } /** * get the channels the event should be broadcast on. * * @return array */ public function broadcaston(){ return []; } }</pre-->請(qǐng)注意,此文件使用序列化來在web應(yīng)用程序中廣播事件,并且此文件中還初始化了必要的參數(shù)。
例如,如果我們需要在構(gòu)造函數(shù)中初始化順序變量以注冊(cè)一個(gè)事件,我們可以通過以下方式來完成 -
public function __construct(order $order){ $this->order = $order; }<h3>聽眾</h3>聽眾處理正在注冊(cè)的事件中提到的所有活動(dòng)。工匠命令 <strong>事件:生成</strong> 創(chuàng)建所有 <strong>聽眾</strong> 的 <strong>應(yīng)用程序/聽眾</strong> 目錄。listeners文件夾包含一個(gè)文件 <strong>eventlistener.php</strong> ,它具有處理偵聽器所需的所有方法。
<h3>eventlistener.php</h3>namespace app\listeners; use app\events\someevent; use illuminate\queue\interactswithqueue; use illuminate\contracts\queue\shouldqueue; class eventlistener{ /** * create the event listener. * * @return void */ public function __construct(){ // } /** * handle the event. * * @param someevent $event * @return void */ public function handle(someevent $event){ // } }</pre-->如代碼所述,它包含用于管理各種事件的 <strong>句柄</strong> 函數(shù)。我們可以創(chuàng)建針對(duì)單個(gè)事件的各種獨(dú)立偵聽器。
<h3><a href="/s7900103/laravel facades.html">下一節(jié):laravel facades</a></h3> <h3><a href="/php/php_sz/180.html" target="_blank">laravel 教程</a></h3>
- CodeIgniter 安裝
- CodeIgniter 應(yīng)用程序架構(gòu)
- CodeIgniter 庫
- CodeIgniter 錯(cuò)誤處理
- CodeIgniter 頁面緩存
- CakePHP 使用數(shù)據(jù)庫
- CakePHP 會(huì)話管理
- CakePHP 分頁
- FuelPHP 視圖
- FuelPHP 錯(cuò)誤
- Laravel 應(yīng)用程序結(jié)構(gòu)
- Laravel 控制器
- Laravel Cookie
- Laravel 響應(yīng)
- Laravel視圖
- Laravel 錯(cuò)誤和日志
- Laravel Ajax
- Laravel 契約
- Laravel CSRF保護(hù)
- Laravel 哈希