yaf框架学习文件配置
文件配置:
在配置php支持yaf的時(shí)候,可以設(shè)置一個(gè)參數(shù)yaf.environ:把本地開(kāi)發(fā)設(shè)置成develop、測(cè)試環(huán)境配置成test、生產(chǎn)環(huán)境配置成product。
[yaf] extension=yaf.so yaf.use_namespace=1 yaf.environ=develop通過(guò)設(shè)置運(yùn)行環(huán)境,在項(xiàng)目中可以通過(guò)ini_get(‘yaf.environ’)獲取環(huán)境參數(shù),進(jìn)而取到相應(yīng)節(jié)的配置。
yaf配置文件一般都放在項(xiàng)目的conf文件夾下,yaf application實(shí)例化的時(shí)候需要傳遞一個(gè)配置文件路徑,配置文件叫application.ini,先看下application.ini的結(jié)構(gòu):
[common] ; 通用配置[product : common] ; 生產(chǎn)環(huán)境配置[test : common] ; 測(cè)試環(huán)境配置[develop : common] ; 開(kāi)發(fā)環(huán)境配置配置除了節(jié)之外,節(jié)和節(jié)之間還有繼承關(guān)系。
例如[product : common]就表示product的配置會(huì)繼承common的配置。
yaf在實(shí)例化應(yīng)用傳遞配置文件路徑和運(yùn)行環(huán)境:
1 define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../')); 2 $app = new \Yaf\Application(APPLICATION_PATH . "/conf/application.ini", ini_get('yaf.environ'));這樣當(dāng)項(xiàng)目運(yùn)行環(huán)境在develop下的時(shí)候,會(huì)優(yōu)先讀取[develop : common]內(nèi)的配置,如果沒(méi)有則會(huì)從[common]中獲取。
在項(xiàng)目中任何地方都可以通過(guò)
| 1 | \Yaf\Application::app()->getConfig(); |
獲取application.ini中的配置。
事實(shí)上該例中可以不用傳遞ini_get(‘yaf.environ’)參數(shù),在實(shí)例化的時(shí)候yaf會(huì)自行讀取php.ini中的yaf.environ參數(shù)。但如果是其它的配置文件,則需要傳遞該參數(shù)。
額外的配置
隨著項(xiàng)目越來(lái)越龐大,配置也會(huì)越來(lái)越復(fù)雜,如果都放在項(xiàng)目默認(rèn)的配置文件application.ini中,可能配置會(huì)有好幾百行,這樣就不容易維護(hù)了。一般我們會(huì)考慮新建配置文件用來(lái)存儲(chǔ)額外的配置。yaf中提供了\Yaf\Config\Ini類(lèi)來(lái)處理這些額外的配置文件。
| 1 | $config = new \Yaf\Config\Ini(APPLICATION_PATH . '/conf/url.ini', ini_get('yaf.environ')); |
在實(shí)際讀取的時(shí)候,最好能設(shè)置一個(gè)靜態(tài)變量保存讀取到的配置,避免重復(fù)申請(qǐng)系統(tǒng)open函數(shù)調(diào)用。如下:
| 1 2 3 4 | static $config = null; if ($config === null) { ????$config = new \Yaf\Config\Ini(APPLICATION_PATH . '/conf/url.ini', ini_get('yaf.environ')); } |
參考:http://www.01happy.com/php-yaf-ext-config/
來(lái)源:http://www.cnblogs.com/xiaohaillong/p/6030012.html
總結(jié)
以上是生活随笔為你收集整理的yaf框架学习文件配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: windows下生成github ssh
- 下一篇: 文化大革命时间(说一说文化大革命时间的简