$scope($this->documents ??= new Documents());
這樣引用既包括屬性,也包括您想在那里使用的類。這通常比使用表示兩者的字符串更好(并且還丟失了對(duì)具體屬性和具體類名的引用)。
您在這里所做的也被稱為延遲初始化。它的問題是在類中使用了 new 關(guān)鍵字,導(dǎo)致代碼難以測試。盡管如此,這仍然是對(duì)使用字符串的改進(jìn)。
您可能還對(duì) PhpStorm 中的新 @mixin
這可能讓您省略可調(diào)用對(duì)象的注入,但對(duì)于您通過此方法實(shí)現(xiàn)的具體目標(biāo)我并不完全清楚,所以這只是一個(gè)額外的提示,可能不符合您的需求。
參考資料: