ThinkPHP容器之初步解析

2020-10-12 15:00:58

本文是解析容器類原始碼之前做的一個簡單的梳理,把大體梳理完腦海中有個印象才可以深入的對容器進行解析。

七、Container容器類初步剖析

在之前的文章中實現了一個自己建立的容器,接下來看看原始碼中的容器,經過了之前文章中容器中出現的技術點都已經囊括完了。

在接下里閱讀容器原始碼就不會很吃力,如果之前的文章沒看,一定要大概過一遍哈!

相信大家無數次開啟的一個檔案public/index.php

曾有多少次開啟這個檔案想對原始碼進行一探究竟,但是看著看著就放棄了。

經過之前的註冊樹模式之後,你肯定就會明白這行程式碼會返回什麼Container::get('app')

這行程式碼返回就是app的範例,可以進行簡單的斷點一下。

可以看到返回就是app類裡邊的眾多屬性。

所以說註冊樹模式不會的在繼續返回去看之前寫的,要不越看越迷糊。

之前的技術點都是為了後邊一個鋪墊,如果之前的文章不看後邊是沒辦法看的,高手就不說了哈!

那麼框架中的容器是怎麼定義的呢!它到底是怎麼實現的呢!

也就是隻需要去關注這個get()方法做的事情就可以了。

程式碼就會追蹤到檔案thinkphp/library/think/Container.php中的get()方法

這裡的getInstance()方法不陌生了吧!這就是上文說過的單例模式。也就是說在程式的宣告週期內僅此會返回一個範例的物件。

可以進行程式碼追蹤getInstance()這個方法,你就會在同檔案中看到這個單例模式的方法,返回Container範例。

接下來會對容器中的make方法進行深度解析。

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

以上就是ThinkPHP容器之初步解析的詳細內容,更多請關注TW511.COM其它相關文章!