首頁  >  文章  >  php框架  >  laravel中trait是什麼

laravel中trait是什麼

WBOY
WBOY原創
2022-01-13 17:08:162177瀏覽

在laravel中,trait是為類似PHP的單繼承語言而準備的一種程式碼多用機制,trait用於減少單繼承語言的限制,使開發人員能夠自由地在不同層次結構內獨立的類別中復用method,可以簡單理解為方便程式碼複用的一種實作方式。

laravel中trait是什麼

本文操作環境:Windows10系統、Laravel6版、Dell G3電腦。

laravel中trait是什麼

# Trait 是為類似 PHP 的單一繼承語言而準備的程式碼重複使用機制。 Trait 為了減少單繼承語言的限制,使開發人員能夠自由地在不同層次結構內獨立的類別中重複使用 method。 Trait 和 Class 組合的語意定義了一種減少複雜性的方式,避免傳統多繼承和 Mixin 類別相關典型問題。

首先我們得知道如何定義一個Trait, 使用的關鍵字是trait

namespace App\Traits;
trait HasCreator
{
}

呼叫

namespace App;
use App\Traits\HasCreator;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Post extends Model
{
    use HasCreator, SoftDeletes;
    protected $fillable = ['title', 'user_id'];
    protected static function boot()
    {
        parent::boot();
        self::hasCreator();
    }
}

將Trait 中的方法合併到模型中去了,要想使用就use 一下,然後當自己聲明的一樣去呼叫就好了。

這裡面其實有個優先權的:呼叫類別>Trait > 父類別

trait SoftDeletes
{
    protected $forceDeleting = false;
    public static function bootSoftDeletes()
    {
        ...
    }
    public function forceDelete()
    {
      ...
    }
}

trait可以定義屬性與方法

trait 中的方法名稱:hasCreator ()改為bootHasCreator 在use時會預設呼叫

相關推薦:最新的五個Laravel影片教學

以上是laravel中trait是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn