yaf框架學習文件配置


文件配置:

在配置php支持yaf的時候,可以設置一個參數yaf.environ:把本地開發設置成develop、測試環境配置成test、生產環境配置成product。

[yaf]
extension=yaf.so
yaf.use_namespace=1
yaf.environ=develop

通過設置運行環境,在項目中可以通過ini_get(‘yaf.environ’)獲取環境參數,進而取到相應節的配置。

yaf配置文件一般都放在項目的conf文件夾下,yaf application實例化的時候需要傳遞一個配置文件路徑,配置文件叫application.ini,先看下application.ini的結構:

[common]
; 通用配置
 
[product : common]
; 生產環境配置
 
[test : common]
; 測試環境配置
 
[develop : common]
; 開發環境配置

配置除了節之外,節和節之間還有繼承關系。

例如[product : common]就表示product的配置會繼承common的配置。

yaf在實例化應用傳遞配置文件路徑和運行環境:

1 define("APPLICATION_PATH", realpath(dirname(__FILE__) . '/../'));
2 $app = new \Yaf\Application(APPLICATION_PATH . "/conf/application.ini", ini_get('yaf.environ'));

這樣當項目運行環境在develop下的時候,會優先讀取[develop : common]內的配置,如果沒有則會從[common]中獲取。

在項目中任何地方都可以通過

\Yaf\Application::app()->getConfig();

獲取application.ini中的配置。

事實上該例中可以不用傳遞ini_get(‘yaf.environ’)參數,在實例化的時候yaf會自行讀取php.ini中的yaf.environ參數。但如果是其它的配置文件,則需要傳遞該參數。

額外的配置

隨着項目越來越龐大,配置也會越來越復雜,如果都放在項目默認的配置文件application.ini中,可能配置會有好幾百行,這樣就不容易維護了。一般我們會考慮新建配置文件用來存儲額外的配置。yaf中提供了\Yaf\Config\Ini類來處理這些額外的配置文件。

$config = new \Yaf\Config\Ini(APPLICATION_PATH . '/conf/url.ini', ini_get('yaf.environ'));

在實際讀取的時候,最好能設置一個靜態變量保存讀取到的配置,避免重復申請系統open函數調用。如下:

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/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM