咱們都知道PHP只能使用單一繼承,這意味着一個類只能從另外一個類繼承。 例如,您可能想從幾個不一樣的類繼承方法以防止代碼重複。 PHP 5.4中添加了新的語言特性Traits,並且它在Laravel框架中獲得了普遍使用。
Traits 的定義php
Trait是PHP等單一繼承語言中的代碼重用機制。 Trait的目的是減小單一繼承語言的某些限制,並容許開發人員在不一樣類層次結構下的幾個獨立類中自由重用方法。laravel
Trait的語義組成和類定義在某種程度上下降了代碼的複雜性,並避免了與多重繼承和Mixins相關的一些典型問題。框架
Trait與類很是類似,但其目的只是以更好和一致的方式聚合某些方法。 特性自己沒法實例化。 除了傳統的繼承,它還能夠水平組合行爲,換句話說,類應用程序不須要繼承對象
PHP Traits是什麼?
Trait 是另外一個類中包含的一組簡單方法。Trait 就像一個抽象類,不能單獨實例化。一個Trait 示例以下所示:blog
而後,您能夠在其餘類中使用Trait,例如:繼承
如今,若是您想從這些類中建立新對象,您將發現它們均可以使用share()方法:開發
Traits 如何工做 ?it
從上面的示例中能夠看到,儘管Post和Comment自己沒有定義方法,可是它們能夠調用share()方法。 Trait 是一種在運行時「複製並粘貼」代碼的方法。 這意味着將Trait複製到Post and Comment,所以在實例化新實例時,能夠直接調用share()方法。 我按期檢查個人代碼以及如何構造新代碼,以便在未來快速構建新功能並輕鬆啓動新項目。程序
那麼,怎樣在laravel中使用traits呢?
首先我在項目的 Http 目錄下建立一個Traits文件夾,而且新建了一個名叫 ActivityCouponTrait.php 的Trait文件,寫了一個新用戶註冊的trait;去尋找UserBaseService裏的addUser方法。方法
接下來找UserBaseService裏的addUser方法。
這個時候咱們就能夠在controller裏直接去調用了。首先要先引入上面的那個trait
而後就能夠用了