Laravel事件監(jiān)聽器用法實(shí)例分析
本文實(shí)例講述了Laravel事件監(jiān)聽器用法。分享給大家供大家參考,具體如下:
這里講述最佳實(shí)踐方案,分以下步驟:
第一步:注冊(cè)事件和監(jiān)聽器。
在EventServiceProvider的linsten數(shù)組里面加上事件和監(jiān)聽器,鍵名是事件,鍵值里面的數(shù)組是一個(gè)或者多個(gè)監(jiān)聽器,意思是當(dāng)某一個(gè)事件發(fā)生的時(shí)候,傳送給數(shù)組里面的那些個(gè)監(jiān)聽器,執(zhí)行一些列操作。
這里,我監(jiān)聽發(fā)送短信驗(yàn)證碼事件,一旦有發(fā)送驗(yàn)證碼動(dòng)作,我就要到驗(yàn)證碼發(fā)送記錄表里面添加一條數(shù)據(jù),用以記錄。
D:\phpStudy\WWW\BCCKidV1.0\app\Providers\EventServiceProvider.php
protected $listen = [
'App\Events\Event' => [
'App\Listeners\EventListener',
],
'App\Events\SendPhoneCodeEvent' => [
'App\Listeners\SendPhoneCodeListener',
],
];
第二步:生成監(jiān)聽和事件文件。
php artisan event:generate
就會(huì)自動(dòng)生成如下兩個(gè)文件:
D:\phpStudy\WWW\BCCKidV1.0\app\Events\SendPhoneCodeEvent.php
D:\phpStudy\WWW\BCCKidV1.0\app\Listeners\SendPhoneCodeListener.php
第三步:打開App\Events\SendPhoneCodeEvent,
加上一個(gè)屬性,這個(gè)屬性是一個(gè)數(shù)組,里面會(huì)有驗(yàn)證碼內(nèi)容,接收驗(yàn)證碼的手機(jī)號(hào)碼等信息。
public $data;
public function __construct($data)
{
$this->data = $data;
}
第四步:設(shè)置監(jiān)聽器里面需要執(zhí)行的操作,這里我就直接插入一條記錄就行了。
public function handle(SendPhoneCodeEvent $event)
{
AuthCode::create($event->data);
}
第五步:觸發(fā)事件。
use App\Events\SendPhoneCodeEvent;
...
$data = [
'findBy' => $findBy,
'auth_code' => $code,
'customer_id' => $customer_id,
'expire_time' => date('Y-m-d H:i:s', time() + 300),
];
#觸發(fā)事件
event(new SendPhoneCodeEvent($data));
自己的想法:
1、事件的作用其實(shí)可以被一個(gè)方法代替,你在需要調(diào)用的地方引用一下,然后執(zhí)行這個(gè)方法就行了。但是事件有個(gè)好處,他默認(rèn)使用隊(duì)列來處理,可以用來操作那些比較耗時(shí)的操作,例如發(fā)送郵件,發(fā)送驗(yàn)證碼等等。
2、代碼比較整潔,看起來會(huì)舒服一點(diǎn)。
更多關(guān)于Laravel相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Laravel框架入門與進(jìn)階教程》、《php優(yōu)秀開發(fā)框架總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家基于Laravel框架的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
php使用函數(shù)pathinfo()、parse_url()和basename()解析URL
眾所周知在PHP中函數(shù)pathinfo()、parse_url()和basename(),這三個(gè)都是解析URL的函數(shù),但是也存在一些區(qū)別,下面列舉了一些實(shí)例,通過實(shí)例更容易理解這三個(gè)函數(shù)的使用方法和技巧,有需要的朋友可以參考借鑒,感興趣的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧。2016-11-11
用 Composer構(gòu)建自己的 PHP 框架之基礎(chǔ)準(zhǔn)備
這篇文章主要介紹了用 Composer構(gòu)建自己的 PHP 框架的基礎(chǔ)準(zhǔn)備工作,其實(shí)就是各種基礎(chǔ)知識(shí),想自己搭建php框架的童鞋可要看仔細(xì)了2014-10-10
laravel 數(shù)據(jù)遷移與 Eloquent ORM的實(shí)現(xiàn)方法
laravel 提供了很實(shí)用的 Eloquent ORM 模型類,簡(jiǎn)單、直觀的與數(shù)據(jù)庫進(jìn)行交互。同時(shí)使用數(shù)據(jù)遷移管理數(shù)據(jù)庫,可以與團(tuán)隊(duì)進(jìn)行共享以及編輯,本文詳細(xì)的介紹了laravel 數(shù)據(jù)遷移與 Eloquent ORM的實(shí)現(xiàn)方法,感興趣的可以了解一下2019-04-04
變量在 PHP7 內(nèi)部的實(shí)現(xiàn)(一)
這篇文章主要介紹了變量在 PHP7 內(nèi)部的實(shí)現(xiàn)(一)的相關(guān)資料,需要的朋友可以參考下2015-12-12
Laravel 將數(shù)據(jù)表的數(shù)據(jù)導(dǎo)出,并生成seeds種子文件的方法
今天小編就為大家分享一篇Laravel 將數(shù)據(jù)表的數(shù)據(jù)導(dǎo)出,并生成seeds種子文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10
Zend Framework實(shí)現(xiàn)多文件上傳功能實(shí)例
這篇文章主要介紹了Zend Framework實(shí)現(xiàn)多文件上傳功能的方法,較為詳細(xì)的分析說明了Zend Framework實(shí)現(xiàn)多文件上傳的具體步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-03-03

