在laravel中,trait是為類似PHP的單繼承語言而準備的一種程式碼多用機制,trait用於減少單繼承語言的限制,使開發人員能夠自由地在不同層次結構內獨立的類別中復用method,可以簡單理解為方便程式碼複用的一種實作方式。
本文操作環境: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中文網其他相關文章!