国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP Laravel中的Trait使用方法

2024-05-05 00:06:16
字體:
供稿:網(wǎng)友

Trait是一種在單繼承語言(如PHP)中重用代碼的機(jī)制。Trait旨在通過使開發(fā)人員能夠在生活在不同類層次結(jié)構(gòu)中的多個獨(dú)立類中自由地重用方法集來減少單繼承的某些限制。Traits和類組合的語義以降低復(fù)雜性的方式定義,并避免了與多重繼承和Mixins相關(guān)的典型問題。

Trait類似于類,但僅用于以細(xì)粒度和一致的方式對功能進(jìn)行分組。無法自行實(shí)例化Trait。它是對傳統(tǒng)繼承的補(bǔ)充,可以實(shí)現(xiàn)行為的橫向組合; 也就是說,類成員的應(yīng)用程序不需要繼承。

什么是PHP Trait?

Trait僅僅是您希望包含在另一個類中的一組方法。與抽象類一樣,Trait不能自己實(shí)例化。

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 如何運(yùn)作?

從上面的示例中可以看出,盡管沒有定義該方法,但是對象Post和Comment對象都具有share()可用的方法。

Trait基本上只是一種在運(yùn)行時“復(fù)制和粘貼”代碼的方法。

這意味著Trait被復(fù)制到Post和Comment類中,因此當(dāng)您實(shí)例化一個新實(shí)例時,share()方法代碼將可用。

我經(jīng)常檢查我的代碼以及如何構(gòu)建我的代碼,以便可以快速完成未來的功能添加,并且新項(xiàng)目可以輕松擴(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

<?phpnamespace App/Http/Traits;use App/Brand;trait BrandsTrait {  public function brandsAll() {    // 從品牌表中獲取所有品牌    $brands = Brand::all();    return $brands;  }}


注:相關(guān)教程知識閱讀請移步到PHP教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 翁牛特旗| 青岛市| 当雄县| 容城县| 奎屯市| 手游| 泗阳县| 抚顺县| 怀仁县| 福鼎市| 永靖县| 正定县| 西充县| 烟台市| 铁力市| 普宁市| 盈江县| 台南市| 屯门区| 汉源县| 潮安县| 嘉鱼县| 惠来县| 开鲁县| 康保县| 民权县| 辽中县| 乳山市| 同仁县| 合阳县| 密云县| 富裕县| 剑河县| 张家港市| 曲靖市| 榆林市| 东平县| 岐山县| 安塞县| 宁夏| 武鸣县|