真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

為Yaconf的添加測(cè)試場(chǎng)景(練習(xí)用)

讀了一遍yaconf的源碼,發(fā)現(xiàn)大部分可以理解。在這個(gè)項(xiàng)目上結(jié)合現(xiàn)實(shí)中使用的兩個(gè)場(chǎng)景進(jìn)行進(jìn)行一些小改動(dòng)是個(gè)比較有趣的事情。

創(chuàng)新互聯(lián)公司專(zhuān)注為客戶(hù)提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、鹽邊網(wǎng)絡(luò)推廣、小程序開(kāi)發(fā)、鹽邊網(wǎng)絡(luò)營(yíng)銷(xiāo)、鹽邊企業(yè)策劃、鹽邊品牌公關(guān)、搜索引擎seo、人物專(zhuān)訪(fǎng)、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供鹽邊建站搭建服務(wù),24小時(shí)服務(wù)熱線(xiàn):18980820575,官方網(wǎng)址:www.cdcxhl.com

代碼地址:https://github.com/netbird/yaconf


業(yè)務(wù)場(chǎng)景一

在自己的測(cè)試環(huán)境,各個(gè)業(yè)務(wù)方要求某個(gè)業(yè)務(wù)的api必須長(zhǎng)期指向他們的測(cè)試環(huán)境供他們測(cè)試。之前做法有修改host(碰到非80端口失靈),修改代碼,修改配置文件。而這套環(huán)境又有新的開(kāi)發(fā)任務(wù),需要隨時(shí)更新代碼和配置文件,不更新會(huì)導(dǎo)致其他業(yè)務(wù)失敗,所以不能加鎖。經(jīng)常造成代碼和配置覆蓋。不得不重新修改配置文件和代碼滿(mǎn)足之前的測(cè)試環(huán)境。。。

因代碼配置文件基于yaconf的。所以修改了下yaconf的源碼,提供了一種小方案。

在不修改配置文件和主項(xiàng)目代碼的情況下。

增加測(cè)試模式和測(cè)試配置文件目錄。

在yaconf設(shè)置成測(cè)試模式下,在directory_test添加自己需要滿(mǎn)足測(cè)試需要的配置文件(可以是局部?jī)?nèi)容)。

在讀取配置的時(shí)候 就優(yōu)先讀取測(cè)試內(nèi)容,然后在讀取通用配置。

例如: 

配置文件:

    a.ini的內(nèi)容

a="b"

b="c"

此時(shí)讀取Yaconf::get(‘a(chǎn).a’) 得到的是b。

設(shè)置測(cè)試模式,里面測(cè)試配置:

    a.ini

        a="d"

此時(shí)讀取Yaconf::get('a.a') 得到的是d。

當(dāng)然,整體讀取Yaconf::get('a'),會(huì)導(dǎo)致讀取不到a.b的內(nèi)容,具體依據(jù)自己使用的場(chǎng)景。

PS:僅在測(cè)試環(huán)境下當(dāng)作練習(xí)使用,不適用所有場(chǎng)景。

業(yè)務(wù)場(chǎng)景二

如何在CLI模式下使用Yaconf

雖然Yaconf更適合web請(qǐng)求場(chǎng)景,不太適合在CLI模式下使用,但是受限與環(huán)境, 歷史(業(yè)務(wù)難分離)等問(wèn)題,又急切想使用Yaconf怎么辦?

Yaconf的原理是在PHP_MINIT_FUNCTION函數(shù)里面初始化配置,然后在PHP_RINIT_FUNCTION函數(shù)里面根據(jù)條件更新配置。這樣當(dāng)一個(gè)web請(qǐng)求時(shí),會(huì)觸發(fā)PHP_RINIT_FUNCTION這個(gè)函數(shù),從而自動(dòng)根據(jù)條件更新配置。

而CLI模式模式下,如果進(jìn)程不退出,那么只在啟動(dòng)的時(shí)候執(zhí)行一次PHP_MINIT_FUNCTION和PHP_RINIT_FUNCTION,此時(shí)無(wú)法更新配置信息。

解決方案:

增加外部觸發(fā)函數(shù),手動(dòng)執(zhí)行更新。即:增加Yaconf::update()方法,在代碼中,適合的位置去執(zhí)行這個(gè)函數(shù),觸發(fā)更新。

當(dāng)然,更新的原則和原理還是跟PHP_RINIT_FUNCTION一樣。

如配置文件:

    a.ini

        a="b"

代碼:

while(true) {

      Yaconf::update();

      var_dump(Yaconf::get('a.a'));

}

此時(shí),如果將配置文件改成:

     a="c"

則上述程序會(huì)在check_delay(通常5分鐘)后,輸出c(不用退出進(jìn)程,即可更新).

目前,還沒(méi)有投入正式環(huán)境。如果大家有這個(gè)使用場(chǎng)景,可以考慮以上方式。

ps: 1. 限于本人能力,僅僅包了個(gè)接口,沒(méi)有對(duì)內(nèi)部進(jìn)行合并邏輯處理,重在解決問(wèn)題。

 

     2. 條條大道通羅馬,如果可能,大家也可以使用別的更好的方式。解決問(wèn)題的方法不唯一。

     因能力有限,內(nèi)部解析代碼沒(méi)有做改動(dòng)。


網(wǎng)站標(biāo)題:為Yaconf的添加測(cè)試場(chǎng)景(練習(xí)用)
文章來(lái)源:http://weahome.cn/article/jsossg.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部