ThinkPHP容器之註冊樹模式

2020-10-10 15:01:03

學習容器原始碼之前必須要學會另外一個設計模式註冊樹模式,這種設計模式也是容器的一個核心了。

二、註冊樹模式

為什麼在這裡說這個註冊樹模式,因為在框架中註冊樹模式就是一個主導位置,所以必須去了解它!

那什麼是註冊樹模呢!

  • 註冊樹模式就是將物件範例註冊到一顆樹上(這裡的樹可不是真的樹啊!就是註冊到一個全域性的屬性裡邊)
  • 然後可以通過內部方法從全域性的樹上獲取對應的物件範例。

這樣說的話肯定也不能更好的理解,接下來咔咔帶大家看一個簡單的案例來簡單的瞭解一下。

一個註冊樹模式需要的東西就是四個,註冊樹的池子,將物件掛載到註冊池裡,從註冊池裡獲取物件,從註冊池裡解除安裝物件。

如下圖是咔咔寫的一個簡單的註冊樹模式。

程式碼如果看不懂的就需要去補補基礎了哈!

在這裡插入圖片描述在這裡插入圖片描述接下來在到同一目錄建立一個TestTree檔案

在這裡插入圖片描述來到控制器測試寫的註冊樹模式是否有問題

在做測試的時候一定要注意名稱空間問題哈!這裡的kaka目錄是之前在類的自動載入哪裡設定的,如有不會的可以去第一期文章檢視。

這裡就相當於先把TestTree這個類範例化出來

然後使用註冊樹模式把這個範例註冊到object樹池子中

最後使用get方式將這個類獲取出來就可以直接呼叫TestTree中的方法了。

在這裡插入圖片描述最後看一下最終列印結果,結果就是TestTree類中getTreeContent方法的返回值。

在這裡插入圖片描述註冊樹模式就是以上咔咔說明的這些內容,就是不去針對原始碼學習,這些內容也是我們必須要去學會使用的。

堅持學習、堅持寫博、堅持分享是咔咔從業以來一直所秉持的信念。希望在偌大網際網路中咔咔的文章能帶給你一絲絲幫助。我是咔咔,下期見。

以上就是ThinkPHP容器之註冊樹模式的詳細內容,更多請關注TW511.COM其它相關文章!