亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

使用Laravel事件保持代碼清潔

crossea / 2746人閱讀

摘要:事件類負(fù)責(zé)序列化傳入數(shù)據(jù),并將其傳遞給偵聽器,旨在在事件觸發(fā)后處理邏輯的內(nèi)容。當(dāng)綁定準(zhǔn)備就緒時(shí),我們可以使用生成一對(duì)事件偵聽器,或者我們可以使用命令多帶帶創(chuàng)建它們。我們的事件沒有其他責(zé)任,只是將用戶指定為公共財(cái)產(chǎn),可能會(huì)傳遞給偵聽器。

在許多情況下,當(dāng)我們的應(yīng)用程序變得更大,并且需要處理越來越多的任務(wù)時(shí),我們的控制器,演示者或服務(wù)的大小可以快速增加,并且很容易變得難以處理,無法測(cè)試和緩慢。

單一職責(zé)

重新組織我們的邏輯,并將不同類型的任務(wù)放到專門的類中,可能會(huì)非常有用,并且這是推薦的“最佳”實(shí)踐。

為什么?處理更多但更小的碎片比處理巨大巨石中的所有物件要容易得多。最重要的是,你的應(yīng)用程序變得更加可測(cè)試,你不會(huì)破壞SRP,并且最終你可以輕松獲得更干凈更漂亮的代碼。

開始使用事件

其中一項(xiàng)有用的技巧是Laravel的 Event 服務(wù)。 首先,在各種情況下,通過將任務(wù)移至事件類,可徹底清理控制器。 使用事件的另一個(gè)原因是隊(duì)列系統(tǒng),它允許你的應(yīng)用程序異步完成作業(yè),這可以極大地加速你的應(yīng)用程序。

事件系統(tǒng)有兩個(gè)重要部分。 事件本身和偵聽器(Listener)可以綁定到特定的事件。 事件類負(fù)責(zé)序列化傳入數(shù)據(jù),并將其傳遞給偵聽器,旨在在事件觸發(fā)后處理邏輯的內(nèi)容。

實(shí)際中使用事件 (Event)

觸發(fā)事件從未如此簡(jiǎn)單,我們所要做的就是調(diào)用 event() helper,并將事件的類作為參數(shù)。如: event(UserRegistered::class) 。

通過一個(gè)常見的例子,讓我們看看它在現(xiàn)實(shí)生活中的作用。在我們的應(yīng)用程序中,我們希望向我們的新用戶發(fā)送歡迎電子郵件。

首先,我們需要在 EventServiceProvider 中綁定事件和偵聽器。如果我們想要處理特定事件的不同邏輯,我們可以將更多監(jiān)聽器附加到事件上。

// app/Providers/EventServiceProvider.php

 [
            "AppListenersSendWelcomeEmail",
        ],
    ];
}

當(dāng)綁定準(zhǔn)備就緒時(shí),我們可以使用 php artisan event:generate 生成一對(duì) 事件-偵聽器,或者我們可以使用 artisan make 命令多帶帶創(chuàng)建它們。

我們的事件沒有其他責(zé)任,只是將用戶指定為公共財(cái)產(chǎn),可能會(huì)傳遞給偵聽器。

// app/Events/UserRegistered.php

user = $user;
    }
}

我們的偵聽器Listener是重要的一部分。 它實(shí)現(xiàn)了 ShouldQueue 接口,這意味著這個(gè)事件將被推送到隊(duì)列堆棧。 在 handle 方法中,我們正在實(shí)現(xiàn)將電子郵件發(fā)送給給定用戶的邏輯。

// app/Listeners/SendWelcomeEmail.php

user)->send(new WelcomeEmail($event->user));
    }
}

重組我們的邏輯可能非常有用,尤其是當(dāng)你需要處理大量任務(wù)時(shí)。事件和偵聽器可能對(duì)你有很大的幫助。你可以在這里找到官方的Laravel事件文檔。

更多PHP知識(shí),請(qǐng)前往 PHPCasts

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/28680.html

相關(guān)文章

  • 為什么Laravel會(huì)成為最成功的PHP框架

    摘要:年,將作為一種包含全新現(xiàn)代方法的框架介紹給大家。本文我們將討論為什么會(huì)成為最成功的框架。身份驗(yàn)證安全是至關(guān)重要的。單元測(cè)試單元測(cè)試的開發(fā)是一個(gè)耗費(fèi)大量時(shí)間的任務(wù),但是它卻是保證我們的應(yīng)用程序保持正常工作的關(guān)鍵。中可使用執(zhí)行單元測(cè)試。 2011年,Taylor Otwell將Laravel作為一種包含全新現(xiàn)代方法的框架介紹給大家。Laravel最初的設(shè)計(jì)是為了面向MVC架構(gòu)的,它可以滿足...

    Terry_Tai 評(píng)論0 收藏0
  • 如何設(shè)計(jì)大型網(wǎng)站的前端 JavaScript 框架

    摘要:前端單元測(cè)試,推薦淘寶開源的工具,簡(jiǎn)單易用,支持眾多測(cè)試框架,也支持調(diào)試。這些也是設(shè)計(jì)前端框架時(shí)需要權(quán)衡的重要方面。最后,其實(shí)大型網(wǎng)站不一定要設(shè)計(jì)自己的前端框架,完全可以選用現(xiàn)有的框架。 有人在知乎上提問如何設(shè)計(jì)大型網(wǎng)站的前端 JavaScript 框架,有不少回答,其中得贊較多的兩個(gè)回答如下: 相對(duì)大型的項(xiàng)目在前端 JS 方面有幾個(gè)需要達(dá)成的目標(biāo): 1. 代碼邏輯分層 ...

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

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

0條評(píng)論

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