在 Zend Framework 中缓存你的配置文件 Application.ini
Posted on 2010-02-05 19:53 analyzer 阅读(863) 评论(0) 编辑 收藏 举报在用 Zend Framework 构建应用程序时,我们通常以 index.php 作为入口文件,并在其中创建 Zend_Application 对象及完成配置,例如读入名为 Application.ini 的配置文件。
然而每次请求都读入并解析 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 = new Zend_Application( APPLICATION_ENV, $configFile ); // 如果缓存文件不存在,我们创建它 // 只用于 production 环境 if ($noConfigCache and ('production' == APPLICATION_ENV)) { $configs = '<?php' . PHP_EOL . 'return ' . var_export($application->getOptions(), true) . PHP_EOL . '?>'; file_put_contents(CONFIG_INC, $configs); } // ...... ?>
这样当应用程序检测到 Application.ini.inc 缓存文件存在时,就会自动载入,并读取经过解析的数组形式的配置。
转自:http://kbs.kimbs.cn/blog/list/post/16/title/cache-application-configuration-ini-in-zend-framework