在laravel中,trait是為類似php的單繼承語言而準備的一種代碼復用機制,trait用于減少單繼承語言的限制,使開發人員能夠自由地在不同層次結構內獨立的類中復用method,可以簡單理解為方便代碼復用的一種實現方式。
本文操作環境:Windows10系統、Laravel6版、Dell G3電腦。
laravel中trait是什么
?Trait 是為類似 PHP 的單繼承語言而準備的一種代碼復用機制。Trait 為了減少單繼承語言的限制,使開發人員能夠自由地在不同層次結構內獨立的類中復用 method。 Trait 和 class 組合的語義定義了一種減少復雜性的方式,避免傳統多繼承和 Mixin 類相關典型問題。
首先我們得知道如何定義一個 Trait, 使用的關鍵字是 trait
namespace?AppTraits; trait?HasCreator { }
調用
namespace?App; use?AppTraitsHasCreator; use?IlluminateDatabaseEloquentModel; use?IlluminateDatabaseEloquentSoftDeletes; 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視頻教程
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦