Yaconf配置管理擴(kuò)展使用示例

發(fā)布時(shí)間:2024-02-26
yaconf,使用單獨(dú)的一個(gè)配置目錄(在yaconf.directory指定),不和代碼在一起。
在php啟動(dòng)的時(shí)候,處理所有的要處理的配置,然后這些配置就會(huì)常駐內(nèi)存,隨著php的生命周期存亡. 避免了每次請(qǐng)求的時(shí)候解析配置文件。
配置目錄和代碼分離以后,可以借助一個(gè)配置管理后臺(tái),來實(shí)現(xiàn)配置的統(tǒng)一化管理。
配置如果有變化, 它會(huì)reload,不需要重啟(檢測(cè)的頻率由yaconf.check_delay控制)。
它支持豐富的配置類型,包括字符串,數(shù)組,分節(jié),分節(jié)繼承,并且還可以在配置中直接寫php的常量和環(huán)境變量等。
為什么要用 yaconf ?
一般我們項(xiàng)目中是用php文件做配置的,一個(gè)config目錄下可能有十幾個(gè)甚至數(shù)十個(gè).php配置文件,里面都是各種各樣的array, 這就導(dǎo)致配置文件的解析耗費(fèi)了很大的性能
一、單獨(dú)使用
在目錄 d:\phpstudy\yaconf 下新增配置文件 redis.ini,內(nèi)容如下
[base] parent=yaconf children=null [children:base] children=set重啟服務(wù)器,新建 index.php 文件測(cè)試
<?php $redis = \yaconf::get('redis'); print_r($redis); 打印內(nèi)容
$ php index.php hello worldarray ( [base] => array ( [parent] => yaconf [children] => null ) [children] => array ( [parent] => yaconf [children] => set ) )二、框架集成使用(thinkphp5.1)
php.ini
[yaconf] yaconf.directory=/home/www/web/cl_new_pay_dev yaconf.check_delay=605.1 版本默認(rèn)支付yaconf
在項(xiàng)目更目錄新建 thinkphp.ini 添加以下內(nèi)容( cl_new_pay_dev 目錄下)
name=yaconf year=2015 features[]=fast features.1=light features.plus=zero-copy features.constant=php_version features.env=${home}由于默認(rèn)yaconf使用多個(gè)配置文件,建議在項(xiàng)目中使用setyaconf方法指定yaconf使用的獨(dú)立配置文件,例如
// 建議在應(yīng)用的公共函數(shù)文件中進(jìn)行設(shè)置 common.php think\facade\config::setyaconf('thinkphp'); (1)使用助手函數(shù)
var_dump(config::yaconf('name')); var_dump(config::yaconf('year')); var_dump(config::yaconf('features')['plus']); var_dump(config::yaconf('features.plus')); var_dump(config::yaconf('features.constant')); var_dump(config::yaconf('features.env')); 打印結(jié)果
string(6) yaconf string(4) 2015 string(9) zero-copy string(9) zero-copy string(6) 7.2.12 string(0) (2)不適用助手函數(shù),直接訪問
print_r(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~); print_r(\yaconf::get(cpay)); print_r(\yaconf::get(cpay.common)); print_r(\yaconf::get(cpay.database)); print_r(\yaconf::get(cpay.redis)); print_r(\yaconf::get(cpay.redis.host)); 打印結(jié)果
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~array ( [common] => array ( [app_name] => 二萬ocr [app_host] => www.cnblogs.com [app_debug] => 1 ) [database] => array ( [app_name] => 二萬ocr [app_host] => www.cnblogs.com [app_debug] => 1 [hostname] => 127.0.0.1 [database] => cl_cpay [username] => root [password] => wang123456, ) [redis] => array ( [app_name] => 點(diǎn)點(diǎn)支付 [app_host] => www.cnblogs.com [app_debug] => 1 [host] => 192.168.1.1 [port] => 6379 [auth] => 123456 [prefix] => tii ) ) array ( [app_name] => 二萬ocr [app_host] => www.cnblogs.com [app_debug] => 1 ) array ( [app_name] => 二萬ocr [app_host] => www.cnblogs.com [app_debug] => 1 [hostname] => 127.0.0.1 [database] => cl_cpay [username] => root [password] => wang123456, ) array ( [app_name] => 二萬ocr [app_host] => www.cnblogs.com [app_debug] => 1 [host] => 192.168.1.1 [port] => 6379 [auth] => 123456 [prefix] => tii ) 192.168.1.1 capy.ini 配置文件
[common] app_name = 二萬ocr app_host = www.cnblogs.com app_debug= true [database:common] hostname = 127.0.0.1 database = cl_cpay username = root password = wang123456, [redis:common] host = 192.168.1.1 port = 6379 auth = 123456 prefix = tii
上一個(gè):虛開增值稅專用票罪怎么量刑
下一個(gè):怎么把狀態(tài)欄時(shí)間居中,vivo手機(jī)狀態(tài)欄時(shí)間怎么居中

建筑工程施工組織設(shè)計(jì)的編制原則有哪些?
余額寶累計(jì)收益怎么清零的(余額寶累計(jì)收益如何清零)
筆記本什么配置性價(jià)比最高的電腦
ASUS重裝系統(tǒng)
喝茶真的能降低死亡率嗎?
云計(jì)算公司有哪些
葡萄葉子發(fā)黃怎么辦
人工挖孔的安全措施和預(yù)案保障
楊樹有性繁殖技術(shù)
迷迭香抗氧化劑
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos