這篇文章給大家介紹Trait怎么在PHP Laravel中使用,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
Trait是一種在單繼承語言(如PHP)中重用代碼的機制。Trait旨在通過使開發(fā)人員能夠在生活在不同類層次結(jié)構(gòu)中的多個獨立類中自由地重用方法集來減少單繼承的某些限制。Traits和類組合的語義以降低復(fù)雜性的方式定義,并避免了與多重繼承和Mixins相關(guān)的典型問題。
Trait類似于類,但僅用于以細(xì)粒度和一致的方式對功能進(jìn)行分組。無法自行實例化Trait。它是對傳統(tǒng)繼承的補充,可以實現(xiàn)行為的橫向組合; 也就是說,類成員的應(yīng)用程序不需要繼承。
什么是PHP Trait?
Trait僅僅是您希望包含在另一個類中的一組方法。與抽象類一樣,Trait不能自己實例化。
Trait的一個例子可以是:
trait SharePost { public function share($item) { return 'share this post'; } }
然后你可以把這個trait 包含在其他類中,就像這樣:
class Post { use SharePost; } class Comment { use SharePost; }
現(xiàn)在,如果要從這些類中創(chuàng)建新對象,您會發(fā)現(xiàn)它們都有share()方法可用:
$post = new Post; echo $post->share(''); $comment = new Comment; echo $comment->share('');
trait 如何運作?
從上面的示例中可以看出,盡管沒有定義該方法,但是對象Post和Comment對象都具有share()可用的方法。
Trait基本上只是一種在運行時“復(fù)制和粘貼”代碼的方法。
這意味著Trait被復(fù)制到Post和Comment類中,因此當(dāng)您實例化一個新實例時,share()方法代碼將可用。
我經(jīng)常檢查我的代碼以及如何構(gòu)建我的代碼,以便可以快速完成未來的功能添加,并且新項目可以輕松擴(kuò)展以前的想法。
如何在laravel中使用trait ?
我在我的Http目錄中創(chuàng)建了一個Trait目錄,其中有一個名為的TraitBrandsTrait.php
use App\Http\Traits\BrandsTrait; class YourController extends Controller { use BrandsTrait; public function addProduct() { $brands = $this->brandsAll(); } }
這是我的BrandsTrait.php
<?php namespace App\Http\Traits;use App\Brand; trait BrandsTrait { public function brandsAll() { // 從品牌表中獲取所有品牌 $brands = Brand::all(); return $brands; } }
關(guān)于Trait怎么在PHP Laravel中使用就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
標(biāo)題名稱:Trait怎么在PHPLaravel中使用-創(chuàng)新互聯(lián)
本文來源:http://www.chinadenli.net/article0/dheiio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、微信公眾號、云服務(wù)器、網(wǎng)站設(shè)計、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容