?
在上文中解析了配置文件的加載流程,在對(duì)不同類(lèi)型的文件加載沒(méi)有去做過(guò)多的解釋?zhuān)酉吕锞歪槍?duì)下面問(wèn)題進(jìn)行簡(jiǎn)單的說(shuō)明。
?
在之前看到的loadFile方法中,文件類(lèi)型為PHP或者yaml程序就打斷了,就不會(huì)在去執(zhí)行后邊的pares方法。
那么這個(gè)parse方法是做什么的呢!
進(jìn)入到paras這個(gè)方法后,首先看注釋
隨后使用了一個(gè)工廠模式去加載think/config/driver下的文件
進(jìn)入到factory這個(gè)方法后,這塊內(nèi)容屬于容器的就不過(guò)多解釋了。
只需要知道這里最終會(huì)返回一個(gè)實(shí)例給paras
方法的$object變量
最終還是使用在上文中提到的set方法,而內(nèi)部的object->parse()就是執(zhí)行返回對(duì)象的內(nèi)部方法,例如下圖展示三個(gè)類(lèi)型。ini、json、xm三個(gè)類(lèi)型都存在同樣的方法
這是ini類(lèi)型,其它倆個(gè)的類(lèi)型也是一毛一樣的,就是會(huì)有同樣的方法來(lái)實(shí)現(xiàn)對(duì)應(yīng)的功能
「簡(jiǎn)單梳理一下工廠模式加載不同類(lèi)型的配置」
-
把對(duì)應(yīng)的類(lèi)型傳給一個(gè)方法 -
然后這個(gè)方法返回對(duì)應(yīng)的實(shí)例 -
在用這個(gè)實(shí)例去調(diào)用類(lèi)里邊的方法 -
所有實(shí)例里的方法名都是一致的
這里咔咔后期會(huì)單獨(dú)出一篇文章模仿這個(gè)實(shí)現(xiàn)另一個(gè)功能,導(dǎo)圖會(huì)有所有的文章鏈接哦!
在ini.php中看到了一個(gè)方法parse_ini_file
,其實(shí)這個(gè)方法根據(jù)之前的學(xué)習(xí)就大概能了解到時(shí)把ini類(lèi)型的配置文件轉(zhuǎn)為數(shù)組形式。這里就不做演示了,很是簡(jiǎn)單哈!
那么其它倆種類(lèi)型都是為了把文件數(shù)據(jù)轉(zhuǎn)為數(shù)組的。
?
堅(jiān)持學(xué)習(xí)、堅(jiān)持寫(xiě)博、堅(jiān)持分享是咔咔從業(yè)以來(lái)一直所秉持的信念。希望在偌大互聯(lián)網(wǎng)中咔咔的文章能帶給你一絲絲幫助。我是咔咔,下期見(jiàn)。
?