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