摘要:事件類負責序列化傳入數(shù)據(jù),并將其傳遞給偵聽器,旨在在事件觸發(fā)后處理邏輯的內(nèi)容。當綁定準備就緒時,我們可以使用生成一對事件偵聽器,或者我們可以使用命令多帶帶創(chuàng)建它們。我們的事件沒有其他責任,只是將用戶指定為公共財產(chǎn),可能會傳遞給偵聽器。
在許多情況下,當我們的應用程序變得更大,并且需要處理越來越多的任務時,我們的控制器,演示者或服務的大小可以快速增加,并且很容易變得難以處理,無法測試和緩慢。
單一職責重新組織我們的邏輯,并將不同類型的任務放到專門的類中,可能會非常有用,并且這是推薦的“最佳”實踐。
為什么?處理更多但更小的碎片比處理巨大巨石中的所有物件要容易得多。最重要的是,你的應用程序變得更加可測試,你不會破壞SRP,并且最終你可以輕松獲得更干凈更漂亮的代碼。
開始使用事件其中一項有用的技巧是Laravel的 Event 服務。 首先,在各種情況下,通過將任務移至事件類,可徹底清理控制器。 使用事件的另一個原因是隊列系統(tǒng),它允許你的應用程序異步完成作業(yè),這可以極大地加速你的應用程序。
事件系統(tǒng)有兩個重要部分。 事件本身和偵聽器(Listener)可以綁定到特定的事件。 事件類負責序列化傳入數(shù)據(jù),并將其傳遞給偵聽器,旨在在事件觸發(fā)后處理邏輯的內(nèi)容。
實際中使用事件 (Event)觸發(fā)事件從未如此簡單,我們所要做的就是調(diào)用 event() helper,并將事件的類作為參數(shù)。如: event(UserRegistered::class) 。
通過一個常見的例子,讓我們看看它在現(xiàn)實生活中的作用。在我們的應用程序中,我們希望向我們的新用戶發(fā)送歡迎電子郵件。
首先,我們需要在 EventServiceProvider 中綁定事件和偵聽器。如果我們想要處理特定事件的不同邏輯,我們可以將更多監(jiān)聽器附加到事件上。
// app/Providers/EventServiceProvider.php [ "AppListenersSendWelcomeEmail", ], ]; }
當綁定準備就緒時,我們可以使用 php artisan event:generate 生成一對 事件-偵聽器,或者我們可以使用 artisan make 命令多帶帶創(chuàng)建它們。
我們的事件沒有其他責任,只是將用戶指定為公共財產(chǎn),可能會傳遞給偵聽器。
// app/Events/UserRegistered.php user = $user; } }
我們的偵聽器Listener是重要的一部分。 它實現(xiàn)了 ShouldQueue 接口,這意味著這個事件將被推送到隊列堆棧。 在 handle 方法中,我們正在實現(xiàn)將電子郵件發(fā)送給給定用戶的邏輯。
// app/Listeners/SendWelcomeEmail.php user)->send(new WelcomeEmail($event->user)); } }
重組我們的邏輯可能非常有用,尤其是當你需要處理大量任務時。事件和偵聽器可能對你有很大的幫助。你可以在這里找到官方的Laravel事件文檔。
更多PHP知識,請前往 PHPCasts
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28680.html
摘要:年,將作為一種包含全新現(xiàn)代方法的框架介紹給大家。本文我們將討論為什么會成為最成功的框架。身份驗證安全是至關(guān)重要的。單元測試單元測試的開發(fā)是一個耗費大量時間的任務,但是它卻是保證我們的應用程序保持正常工作的關(guān)鍵。中可使用執(zhí)行單元測試。 2011年,Taylor Otwell將Laravel作為一種包含全新現(xiàn)代方法的框架介紹給大家。Laravel最初的設(shè)計是為了面向MVC架構(gòu)的,它可以滿足...
摘要:前端單元測試,推薦淘寶開源的工具,簡單易用,支持眾多測試框架,也支持調(diào)試。這些也是設(shè)計前端框架時需要權(quán)衡的重要方面。最后,其實大型網(wǎng)站不一定要設(shè)計自己的前端框架,完全可以選用現(xiàn)有的框架。 有人在知乎上提問如何設(shè)計大型網(wǎng)站的前端 JavaScript 框架,有不少回答,其中得贊較多的兩個回答如下: 相對大型的項目在前端 JS 方面有幾個需要達成的目標: 1. 代碼邏輯分層 ...
閱讀 3240·2021-11-24 09:39
閱讀 3179·2021-10-21 09:38
閱讀 2406·2019-08-29 15:28
閱讀 3748·2019-08-26 12:23
閱讀 2624·2019-08-26 12:19
閱讀 1369·2019-08-23 12:44
閱讀 2135·2019-08-23 12:02
閱讀 1007·2019-08-22 17:05