我們都知道PHP只能使用單一繼承,這意味著一個類只能從另一個類繼承, 例如,您可能想從幾個不同的類繼承方法以防止代碼重復, PHP 5.4中添加了新的語言特性Traits,而且它在Laravel框架中得到了廣泛使用,
Traits 的定義
Trait是PHP等單一繼承語言中的代碼重用機制, Trait的目的是減少單一繼承語言的某些限制,并允許開發人員在不同類層次結構下的幾個獨立類中自由重用方法,
Trait的語意組成和類定義在某種程度上降低了代碼的復雜性,并避免了與多重繼承和Mixins相關的一些典型問題,
Trait與類非常相似,但其目的只是以更好和一致的方式聚合某些方法, 特性本身無法實體化, 除了傳統的繼承,它還可以水平組合行為,換句話說,類應用程式不需要繼承
PHP Traits是什么?
Trait 是另一個類中包含的一組簡單方法,Trait 就像一個抽象類,不能單獨實體化,一個Trait 示例如下所示:

然后,您可以在其他類中使用Trait,例如:

現在,如果您想從這些類中創建新物件,您將發現它們都可以使用share()方法:

Traits 如何作業 ?
從上面的示例中可以看到,盡管Post和Comment本身沒有定義方法,但是它們可以呼叫share()方法, Trait 是一種在運行時“復制并粘貼”代碼的方法, 這意味著將Trait復制到Post and Comment,因此在實體化新實體時,可以直接呼叫share()方法, 我定期檢查我的代碼以及如何構造新代碼,以便在將來快速構建新功能并輕松啟動新專案,
那么,怎樣在laravel中使用traits呢?
首先我在專案的 Http 目錄下創建一個Traits檔案夾,并且新建了一個名叫 ActivityCouponTrait.php 的Trait檔案,寫了一個新用戶注冊的trait;去尋找UserBaseService里的addUser方法,

接下來找UserBaseService里的addUser方法,

這個時候我們就可以在controller里直接去呼叫了,首先要先引入上面的那個trait

然后就可以用了

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/95126.html
標籤:PHP
