摘要:什么是事件監(jiān)聽從字面上就可以看出來,無非就是監(jiān)聽一個(gè)事件。這時(shí)候可能會(huì)有人說,那我可以封裝起來啊,是的,你可以封裝起來,然后就可以用簡(jiǎn)短的代碼來實(shí)現(xiàn)。但是實(shí)際項(xiàng)目中,會(huì)涉及多人開發(fā),這樣就不方便了。
1.什么是“事件監(jiān)聽“?
從字面上就可以看出來,無非就是監(jiān)聽一個(gè)事件。
2.使用場(chǎng)景例句一個(gè)物流發(fā)貨的場(chǎng)景:我有個(gè)小程序商城,用戶下單后需要在后臺(tái)發(fā)貨,發(fā)完貨后我想在微信發(fā)送個(gè)模塊通知提示用戶,我想了想用戶不登錄微信或者把消息提示關(guān)閉了,那豈不是不能實(shí)時(shí)通知用戶已經(jīng)發(fā)貨了,我決定再加個(gè)短信通知用戶。有了模塊通知,短信通知后我還嫌不夠...然后我繼續(xù)加.... 通常我們會(huì)這么寫:
這樣寫不是不可以,但是邏輯功能越來越多,控制器只會(huì)變得臃腫起來,后期不便于維護(hù)。這時(shí)候可能會(huì)有人說,那我可以封裝起來啊,是的,你可以封裝起來,然后就可以用簡(jiǎn)短的代碼來實(shí)現(xiàn)。但是實(shí)際項(xiàng)目中,會(huì)涉及多人開發(fā),這樣就不方便了。所以推薦使用laravel自帶的“事件監(jiān)聽“...
3.使用”事件監(jiān)聽"優(yōu)化代碼3.1 打開終端->切換到項(xiàng)目根目錄->使用artisan命令創(chuàng)建事件監(jiān)聽文件
php artisan make:event OrderEvent執(zhí)行完命令,發(fā)現(xiàn) app/Events 目錄下多了個(gè) OrderEvent.php 文件
我們可以打開看看...
簡(jiǎn)單的修改下構(gòu)造函數(shù),因?yàn)榈綍r(shí)候我們可能會(huì) 傳入 購(gòu)買商品的 用戶
user = $user; } /** * Get the channels the event should broadcast on. * * @return IlluminateBroadcastingChannel|array */ public function broadcastOn() { return new PrivateChannel("channel-name"); } }3.2 綁定事件
打開 app/Providers/EventServiceProvider.php 文件,找到 成員屬性 listen下:
protected $listen = [ Registered::class => [ SendEmailVerificationNotification::class, ], ];把事件關(guān)聯(lián)起來,修改為:
protected $listen = [ Registered::class => [ SendEmailVerificationNotification::class, ], "AppEventsOrderEvent" => [ "AppListenerssendModel", "AppListenerssendPhone", ] ];接著打開終端,執(zhí)行 artisan 命令 生成 監(jiān)聽文件
php artisan event:generate然后我們可以在 app/Listeners 文件下發(fā)現(xiàn)多了兩個(gè)文件
打開這兩個(gè)文件,依次修改為:
sendModel.php:
user; // @todo: 當(dāng)前用戶 //@todo:發(fā)送消息模板邏輯 dump("發(fā)送消息模板成功"); } }sendPhone.php:
user; // @todo: 當(dāng)前用戶 //@todo:發(fā)送短信消息 dump("發(fā)送短信消息成功"); } }3.3 最后我們?cè)俅蜷_ OrderController.php 修改為:
3.4 綁定路由
Route::get("/sendGoods","OrderController@sendGoods");3.5 訪問路由結(jié)果:
4. 總結(jié)這樣是不是簡(jiǎn)單,便于維護(hù)了許多呢... 還不會(huì)的小伙伴趕緊去試試吧!如果對(duì)你有幫助,請(qǐng)給個(gè)贊,謝謝!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/31453.html
摘要:說明本文主要講述使用作為緩存加快頁(yè)面訪問速度。何不用來做緩存,等到該達(dá)到一定瀏覽頁(yè)面后再刷新下,效率也很高。可作緩存系統(tǒng)隊(duì)列系統(tǒng)。 說明:本文主要講述使用Redis作為緩存加快頁(yè)面訪問速度。同時(shí),作者會(huì)將開發(fā)過程中的一些截圖和代碼黏上去,提高閱讀效率。 備注:作者最近在學(xué)習(xí)github上別人的源碼時(shí),發(fā)現(xiàn)好多在計(jì)算一篇博客頁(yè)面訪問量view_count時(shí)都是這么做的:利用Laravel...
摘要:說明本文主要學(xué)習(xí)下的模型觀察者,把一點(diǎn)點(diǎn)經(jīng)驗(yàn)分享出來希望對(duì)別人能有幫助。模型觀察者這個(gè)功能能做很多事情,比如模型更新時(shí)發(fā)個(gè)通知。總結(jié)本篇文章主要學(xué)了下的模型觀察者,發(fā)現(xiàn)這個(gè)功能也能使代碼結(jié)構(gòu)更清晰,覺得挺好的。 說明:本文主要學(xué)習(xí)下Laravel的Model Observer模型觀察者,把一點(diǎn)點(diǎn)經(jīng)驗(yàn)分享出來希望對(duì)別人能有幫助。同時(shí),作者會(huì)將開發(fā)過程中的一些截圖和代碼黏上去,提高閱讀效率...
摘要:框架關(guān)鍵技術(shù)解析讀書筆記二第五章框架應(yīng)用程序根目錄版本默認(rèn)的框架應(yīng)用程序是符合規(guī)范的,所以相應(yīng)的目錄結(jié)構(gòu)也是基本固定的,不同的目錄加載了功能文件,如果添加了新的目錄,需要在文件中添加規(guī)范的自動(dòng)加載部分并執(zhí)行命令。 Laravel 框架關(guān)鍵技術(shù)解析·讀書筆記(二) 第五章 框架應(yīng)用程序根目錄(5.1版本) 默認(rèn)的Laravel框架應(yīng)用程序是符合PSR規(guī)范的,所以相應(yīng)的目錄結(jié)構(gòu)也是基本...
摘要:總結(jié)本文主要學(xué)習(xí)了啟動(dòng)時(shí)做的七步準(zhǔn)備工作環(huán)境檢測(cè)配置加載日志配置異常處理注冊(cè)注冊(cè)啟動(dòng)。 說明:Laravel在把Request通過管道Pipeline送入中間件Middleware和路由Router之前,還做了程序的啟動(dòng)Bootstrap工作,本文主要學(xué)習(xí)相關(guān)源碼,看看Laravel啟動(dòng)程序做了哪些具體工作,并將個(gè)人的研究心得分享出來,希望對(duì)別人有所幫助。Laravel在入口index...
閱讀 1848·2021-11-22 15:24
閱讀 1307·2021-11-12 10:36
閱讀 3194·2021-09-28 09:36
閱讀 1837·2021-09-02 15:15
閱讀 2745·2019-08-30 15:54
閱讀 2391·2019-08-30 11:02
閱讀 2392·2019-08-29 13:52
閱讀 3539·2019-08-26 11:53