laravel中trait是什么

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

laravel中trait是什么

本文操作環境: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
喜歡就支持一下吧
點贊5 分享