国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

最簡單易懂的laravel事件,這個功能非常的有用

MartinHan / 909人閱讀

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

先說一下在什么場景會使用這個事件功能。

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

原來這個注冊的方法也就10多行代碼。但是有時候我們?yōu)榱耸∈拢苯釉谧源a后面添加了各種代碼。

例如這個注冊方法本來是這樣的


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


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


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

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

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

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

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


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

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

        ],
    ];
}

這里是注冊事件的入口,相當于一個總目錄,這樣就可以跟注冊代碼解耦了,以后要加東西我們就不需要再去看注冊方法的代碼了

現(xiàn)在注冊完之后會觸發(fā)這個AppEventsRegister類,然后這個類會被AppListenersSendAdMail,AppListenersSendSmsAppListenersSendHelpInformation監(jiān)聽得到,我們進入appEvents目錄,創(chuàng)建Register這個類

uid = $uid;
    }
}

這樣就可以了。

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

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

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

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

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/25669.html

相關(guān)文章

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

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

    xiaoxiaozi 評論0 收藏0
  • 無頭瀏覽器測試可視化:Laravel Dusk 控制臺入門指南

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

    levius 評論0 收藏0
  • 人人必備10個 Laravel 4 擴展包

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

    darkbug 評論0 收藏0
  • laravel實現(xiàn)簡單用戶權(quán)限

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

    goji 評論0 收藏0
  • 使用Laravel事件保持代碼清潔

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

    crossea 評論0 收藏0

發(fā)表評論

0條評論

MartinHan

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<