CakePHP配置文件

时间:2012-02-25 07:44:28

标签: cakephp cakephp-1.3 cakephp-2.0

我想知道有没有办法可以设置配置,我可以有两个数据库条目,当环境是本地和服务器时可以工作。

我很久以来就通过代码切换了一个解决方案。现在无法找到它。你们是怎么做到的?

4 个答案:

答案 0 :(得分:5)

我有本地配置文件的设置。我在app / config / core.php的底部添加以下行:

if(file_exists(ROOT.'/app/config/core.local.php')) {
    include_once(ROOT.'/app/config/core.local.php');
}

在core.local.php中,我可以覆盖本地计算机上不同的所有设置。 database.php也是如此。

答案 1 :(得分:1)

我认为它基于IP     在本地环境IP是127.0.0.1 在实时环境中,IP绝不是127.0.0.1

我的观点

由于

用lib / Cake / Utility / String.php查看名为的函数 public static function uuid()

欢呼声

再次感谢

答案 2 :(得分:1)

这有效

class DATABASE_CONFIG {

    public $default = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'localhost',
        'login' => 'username',
        'password' => 'password',
        'database' => 'database_name',
        'prefix' => '',
        //'encoding' => 'utf8',
    );

    public $live = array(
        'datasource' => 'Database/Mysql',
        'persistent' => false,
        'host' => 'db.HOST.net',
        'login' => 'username',
        'password' => 'password',
        'database' => 'database_name',
        'prefix' => '',
        //'encoding' => 'utf8',
    );

    public function __construct(){
        if (isset($_SERVER) && isset($_SERVER['SERVER_NAME'])) {
            if (strpos($_SERVER['SERVER_NAME'], 'localhost') === false) {
                $this->default  = $this->live;
            }       
        }
    }

}

答案 3 :(得分:1)

我使用的配置类就是这样: http://www.dereuromark.de/2010/08/17/development-vs-productive-setup

最近我将其重写为2.0作为插件版本。 它现在负责测试环境并减少您必须编写的配置行数: http://www.dereuromark.de/2012/02/25/dynamic-database-switching/