成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

最簡(jiǎn)單易懂的laravel事件,這個(gè)功能非常的有用

MartinHan / 963人閱讀

摘要:先說(shuō)一下在什么場(chǎng)景會(huì)使用這個(gè)事件功能。的事件功能實(shí)際上更傾向是一種管理手段,并不是沒(méi)了它我們就做不到了,只是它能讓我們做得更加好,更加優(yōu)雅。然后去目錄創(chuàng)建各種要做的事件監(jiān)聽(tīng)類。

先說(shuō)一下在什么場(chǎng)景會(huì)使用這個(gè)事件功能。

事情大概是這樣的,需求要在用戶注冊(cè)的時(shí)候發(fā)一些幫助郵件給用戶(原本用戶在注冊(cè)之后已經(jīng)有發(fā)別的郵件的了,短信,IM什么的)

原來(lái)這個(gè)注冊(cè)的方法也就10多行代碼。但是有時(shí)候我們?yōu)榱耸∈?,直接在注?cè)代碼后面添加了各種代碼。

例如這個(gè)注冊(cè)方法本來(lái)是這樣的


現(xiàn)在有一個(gè)需求,要求注冊(cè)之后給用戶的郵箱發(fā)一個(gè)廣告,絕大多數(shù)的人(也包括以前的我)就直接在這后面接著寫代碼了


這是比較直觀的寫法,后來(lái)又有需求要發(fā)個(gè)短信。


然后又有需求,要發(fā)IM消息,這樣的需求很多。這些方法如果你封裝了,可能也就一行代碼。

但是,在實(shí)際項(xiàng)目中,這個(gè)注冊(cè)方法里面已經(jīng)加了很多東西。如果多人開(kāi)發(fā)的話各種不方便。然后想到了laravel似乎有這個(gè)功能,但是一直都不知道怎么應(yīng)用,仔細(xì)看了一下手冊(cè),發(fā)現(xiàn)和自己的想法不謀而合。

laravel的事件功能實(shí)際上更傾向是一種管理手段,并不是沒(méi)了它我們就做不到了,只是它能讓我們做得更加好,更加優(yōu)雅。

laravel的事件是一種管理+實(shí)現(xiàn)的體現(xiàn),它首先有一個(gè)總的目錄,然后我們可以宏觀的看到所有的事件,而不需要每次都要打開(kāi)控制器的方法我們才能知道注冊(cè)后會(huì)發(fā)生什么,這一點(diǎn)很重要,非常的方便,我就不按著laravel的順序來(lái)講,而是按著實(shí)際情況來(lái)建立這種關(guān)系。

現(xiàn)在我們無(wú)非就是要在注冊(cè)之后要做一系列的事情,首先得注冊(cè)完之后調(diào)用一個(gè)事件,然后這個(gè)事件再做各種各樣的事


找到appProvidersEventServiceProvider.php文件。給它添加關(guān)系,告訴系統(tǒng),有人用event()調(diào)用了事件之后要被誰(shuí)監(jiān)聽(tīng)得到。

 [
            // 發(fā)送廣告郵件
            "AppListenersSendAdMail",
            // 發(fā)送短信
            "AppListenersSendSms",
            // 發(fā)送幫助信息
            "AppListenersSendHelpInformation",

        ],
    ];
}

這里是注冊(cè)事件的入口,相當(dāng)于一個(gè)總目錄,這樣就可以跟注冊(cè)代碼解耦了,以后要加?xùn)|西我們就不需要再去看注冊(cè)方法的代碼了

現(xiàn)在注冊(cè)完之后會(huì)觸發(fā)這個(gè)AppEventsRegister類,然后這個(gè)類會(huì)被AppListenersSendAdMail,AppListenersSendSms,AppListenersSendHelpInformation監(jiān)聽(tīng)得到,我們進(jìn)入appEvents目錄,創(chuàng)建Register這個(gè)類

uid = $uid;
    }
}

這樣就可以了。

然后去appListeners目錄創(chuàng)建各種要做的事件監(jiān)聽(tīng)類。

uid;
        
        $user = User::find($uid);
        
        //......各種實(shí)現(xiàn)
    }
}

這個(gè)handle方法就是我們要做的具體實(shí)現(xiàn)了,有個(gè)很方便的功能就是如果implements ShouldQueue這個(gè)接口的話就會(huì)異步隊(duì)列執(zhí)行,如果去掉的話就是同步執(zhí)行。很方便有沒(méi)有,這樣代碼就解耦了,不需要再管注冊(cè)代碼了,在這里就能很方便的管理了。多人開(kāi)發(fā)也是多帶帶寫自己的Listeners就可以了。

具體的建議大家去看看手冊(cè)吧,有些內(nèi)容我這里就不完全說(shuō)了。我只是拋磚引玉

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/25669.html

相關(guān)文章

  • Laravel 工具包推薦--角色/權(quán)限管理】

    摘要:在大多數(shù)的開(kāi)發(fā)中,角色和權(quán)限的管理都是非常重要的一部分。上關(guān)于角色和權(quán)限管理的包有很多,今天就為大家介紹幾個(gè)好用的包。緩存在中,為了提高應(yīng)用的性能,或自動(dòng)的存儲(chǔ)角色和權(quán)限數(shù)據(jù)。 showImg(https://segmentfault.com/img/bVTEb3?w=2200&h=1125); 在大多數(shù)的web開(kāi)發(fā)中,角色和權(quán)限的管理都是非常重要的一部分。Laravel上關(guān)于角色和權(quán)...

    xiaoxiaozi 評(píng)論0 收藏0
  • 無(wú)頭瀏覽器測(cè)試可視化:Laravel Dusk 控制臺(tái)入門指南

    摘要:通過(guò)添加此功能,該程序包將啟用記錄請(qǐng)求和響應(yīng)信息所需的功能。是一條普通控制器路由,用于輸出控制臺(tái)的視圖。收集瀏覽器行為這是整個(gè)擴(kuò)展包最乏味的部分。 Laravel Dusk 控制臺(tái)是一款 Laravel 擴(kuò)展包,能夠?yàn)槟愕?Dusk 測(cè)試套件提供漂亮的可視面板。通過(guò)它,你可以可視化運(yùn)行 Dusk 測(cè)試時(shí)涉及的各個(gè)步驟,以及查看每個(gè)步驟的 DOM 快照。這對(duì)于調(diào)試瀏覽器測(cè)試、并搞清楚后臺(tái)...

    levius 評(píng)論0 收藏0
  • 人人必備10個(gè) Laravel 4 擴(kuò)展包

    摘要:更多擴(kuò)展包中有豐富的擴(kuò)展包來(lái)幫你完成幾乎任何你想實(shí)現(xiàn)的功能。我們不能把所有的擴(kuò)展包都整理出來(lái),然而,這里還是列出了一些很有用的。總之,你幾乎總是能夠找到一個(gè)擴(kuò)展包可以解決你當(dāng)前的問(wèn)題。 Laravel 是一個(gè)非常流行且簡(jiǎn)單易用的PHP框架,它提供了很多基礎(chǔ)的工具(如 RESTful 路由、內(nèi)置的ORM、模版等)使你能夠快速的創(chuàng)建應(yīng)用。這意味著你可以花費(fèi)更少的時(shí)間來(lái)建立應(yīng)用程序的模版,給...

    darkbug 評(píng)論0 收藏0
  • laravel實(shí)現(xiàn)簡(jiǎn)單用戶權(quán)限

    摘要:設(shè)計(jì)判斷是否有某個(gè)權(quán)限是一個(gè)二維數(shù)組全局設(shè)置在數(shù)據(jù)庫(kù)中,我將二維數(shù)組存儲(chǔ)為,利用的的和方法,完成了數(shù)據(jù)庫(kù)中和外界程序邏輯的連接。 關(guān)于權(quán)限管理的思考最近用laravel設(shè)計(jì)后臺(tái),后臺(tái)需要有個(gè)權(quán)限管理。權(quán)限管理實(shí)質(zhì)上分為兩個(gè)部分,首先是認(rèn)證,然后是權(quán)限。認(rèn)證部分非常好做,就是管理員登錄,記錄session。這個(gè)laravel中也有自帶Auth來(lái)實(shí)現(xiàn)這個(gè)。最麻煩就是權(quán)限認(rèn)證。 權(quán)限認(rèn)證本質(zhì)...

    goji 評(píng)論0 收藏0
  • 使用Laravel事件保持代碼清潔

    摘要:事件類負(fù)責(zé)序列化傳入數(shù)據(jù),并將其傳遞給偵聽(tīng)器,旨在在事件觸發(fā)后處理邏輯的內(nèi)容。當(dāng)綁定準(zhǔn)備就緒時(shí),我們可以使用生成一對(duì)事件偵聽(tīng)器,或者我們可以使用命令單獨(dú)創(chuàng)建它們。我們的事件沒(méi)有其他責(zé)任,只是將用戶指定為公共財(cái)產(chǎn),可能會(huì)傳遞給偵聽(tīng)器。 在許多情況下,當(dāng)我們的應(yīng)用程序變得更大,并且需要處理越來(lái)越多的任務(wù)時(shí),我們的控制器,演示者或服務(wù)的大小可以快速增加,并且很容易變得難以處理,無(wú)法測(cè)試和緩慢...

    crossea 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<