yaf框架学习文件配置

来源:互联网 发布:金扎软件多少钱 编辑:程序博客网 时间:2024/04/30 01:48

文件配置:

在配置php支持yaf的时候,可以设置一个参数yaf.environ:把本地开发设置成develop、测试环境配置成test、生产环境配置成product。

[yaf]extension=yaf.soyaf.use_namespace=1yaf.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]中获取。

在项目中任何地方都可以通过

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

获取application.ini中的配置。

事实上该例中可以不用传递ini_get(‘yaf.environ’)参数,在实例化的时候yaf会自行读取php.ini中的yaf.environ参数。但如果是其它的配置文件,则需要传递该参数。

额外的配置

随着项目越来越庞大,配置也会越来越复杂,如果都放在项目默认的配置文件application.ini中,可能配置会有好几百行,这样就不容易维护了。一般我们会考虑新建配置文件用来存储额外的配置。yaf中提供了\Yaf\Config\Ini类来处理这些额外的配置文件。

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

在实际读取的时候,最好能设置一个静态变量保存读取到的配置,避免重复申请系统open函数调用。如下:

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/


来源:http://www.cnblogs.com/xiaohaillong/p/6030012.html

原创粉丝点击