首頁  >  文章  >  php框架  >  ThinkPHP容器之註冊樹模式

ThinkPHP容器之註冊樹模式

咔咔
咔咔原創
2020-10-10 11:24:011566瀏覽

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

二、註冊樹模式

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

那什麼是註冊樹模呢!

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

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

一個註冊樹模式需要的東西就是四個,註冊樹的池子,將物件掛載到註冊池裡,從註冊池取得對象,從註冊池卸載物件。

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

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

ThinkPHP容器之註冊樹模式ThinkPHP容器之註冊樹模式接下來在到同一目錄建立一個TestTree檔案

ThinkPHP容器之註冊樹模式來到控制器測試寫的註冊樹模式是否有問題

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

這裡就等於先把TestTree這個類別實例化出來

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

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

ThinkPHP容器之註冊樹模式最後看一下最終列印結果,結果就是TestTree類別中getTreeContent方法的回傳值。

ThinkPHP容器之註冊樹模式註冊樹模式就是以上喀喀說明的這些內容,就是不去針對原始碼學習,這些內容也是我們必須去學會使用的。

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

#

以上是ThinkPHP容器之註冊樹模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn