网站地图    收藏   

主页 > 后端 > php资料库 >

Yii管理不同模式下应用程序的配置_自学php网

来源:自学PHP网    时间:2014-12-04 22:12 作者: 阅读:

[导读] 在开始之前我们应该注意应用的配置作为php脚本来保存。因此我们可以放置任何 有效的php代码 在里面,这会使配置更加 '智能' 而不是简简单单的放回值对(name-value pairs)。 首先我们创建...

在开始之前我们应该注意应用的配置作为php脚本来保存。因此我们可以放置任何 有效的php代码 在里面,这会使配置更加 '智能' 而不是简简单单的放回值对(name-value pairs)。

首先我们创建 主(main) 应用配置并保存为 main.php 文件。这个文件应该包含所有在生产模式下必要的配置。

下面我们创建 开发(development) 应用配置并保存为 dev.php。因为开发的配置和主配置大部分相同,所有我们通过 继承 的方式来创建。我们使用 CMap::mergeArray 来实施继承。

<?php
return CMap::mergeArray(
    require(dirname(__FILE__).'/main.php'), 
    array(
        'components'=>array(
            'db'=>array(
                // define DB connection used for development
            ),
        ),
    )
);

代码中首先包含了 main.php 文件,并自定义了配置数组(例子中演示了数据库链接 DB connection 的配置)。然后返回两个配置合并后的结果作为最终的开发配置。注意我们在这没有使用php的函数 array_merge()array_merge_recursive() 是因为它们不会已我们期望的方式去合并两个数组。

我们可以用同样的方式定义 测试 应用配置并保存为 test.php

为了在不同的模式(生产、开发或测试)下运行程序我们应该在入口使用相对应的配置。为了防止在切换模式时修改入口文件的麻烦,我们可以为每个模式创建独立的入口。例如我们可以创建index.php, index-dev.phpindex-test.php 分别对应生产、开发和测试模式。在生产模式我们通过浏览器访问 index.php,在开发模式访问 index_dev.php,在测试模式访问 index-test.php

在团队开发中环境使用源码控制系统(如 SVN,CVS,GIT)来控制,每个开发者都希望有独立的应用配置(例如他们有不同的数据库连接)。所以在源码库中我们应该只保存 main.php 文件。每个开发人员的配置文件的其余部分只应保留在自己本地,以避免冲突。

Tip: 同样的方法也可以应用与其他基于PHP的配置。例如我们保存应用程序参数(通过 Yii::app()->params 方式访问)为一个 PHP 文件,我们可以使用上面的方法在不同的模式下自定义不同的参数

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论