亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP Laravel中的Trait使用方法

 更新時間:2019年01月20日 10:59:59   投稿:laozhang  
在本篇文章里小編給各位分享了關于PHP Laravel中的Trait使用方法和相關知識點,有需要的朋友們學習下。

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

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

什么是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基本上只是一種在運行時“復制和粘貼”代碼的方法。

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

我經(jīng)常檢查我的代碼以及如何構建我的代碼,以便可以快速完成未來的功能添加,并且新項目可以輕松擴展以前的想法。

如何在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;

  }

}

相關文章

最新評論