Zend Framework中缓存Application.ini配置文件
时间:2010-07-23 来源:yueming
ZendChina7月13日:在用 Zend Framework 构建应用程序时,我们通常以 index.php 作为入口文件,并在其中创建 Zend_Application 对象及完成配置,例如读入名为 Application.ini 的配置文件。
然而每次请求都读入并解析 Application.ini 配置文件,显然也是不小的开销。
翻查 Zend_Application::_loadConfig() 函数,我们发现参数中允许传入数组,这就启发我们可以用简单的方法来避免每次都解析 ini 配置。
在 index 中 :
然而每次请求都读入并解析 Application.ini 配置文件,显然也是不小的开销。
翻查 Zend_Application::_loadConfig() 函数,我们发现参数中允许传入数组,这就启发我们可以用简单的方法来避免每次都解析 ini 配置。
在 index 中 :
<?php
// Application.ini.inc 缓存的配置文件
defined('CONFIG_INC')
||define('CONFIG_INC',
PROJECT_ROOT.'/library/Kbs/Config/Application.ini.inc');
// 如果没有缓存,我们就使用默认配置文件
$configFile=CONFIG_INC;
$noConfigCache=false;
if(false==is_file(CONFIG_INC)){
$configFile=PROJECT_ROOT.'/library/Kbs/Config/Application.ini';
$noConfigCache=true;
}
// Zend_Application
require_once'Zend/Application.php';
// 创建 application
$application=newZend_Application(
APPLICATION_ENV,
$configFile
);
// 如果缓存文件不存在,我们创建它
// 只用于 production 环境
if($noConfigCacheand('production'==APPLICATION_ENV)){
$configs='<?php'.PHP_EOL
.'return '
.var_export($application->getOptions(),true).PHP_EOL
.'?>';
file_put_contents(CONFIG_INC,$configs);
}
这样当应用程序检测到 Application.ini.inc 缓存文件存在时,就会自动载入,并读取经过解析的数组形式的配置。
?>
相关阅读 更多 +