CakePHP - 基于URL的数据库配置
答
您可以设置它在你的构造。
class DATABASE_CONFIG {
var $live = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'mysql.live.com',
'login' => 'root',
'password' => '',
'database' => '',
'prefix' => '',
);
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => '',
'prefix' => '',
);
public function __construct() {
if (isset($_SERVER) && isset($_SERVER['SERVER_NAME'])) {
if (strpos($_SERVER['SERVER_NAME'], 'localhost') === false) {
$this->default = $this->live;
}
}
}
}
这将基本上根据你在哪里切换你的配置。
答
我得到了这个(我的开发域名以'.dev'结尾);
在bootstrap.php中
define('IS_LIVE',!(strpos($_SERVER['SERVER_NAME'], 'dev') !== false));
在database.php中
<?php
class DATABASE_CONFIG
{
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => '127.0.0.1',
'login' => 'xxxx',
'password' => 'xxxx',
'database' => 'xxxx',
'prefix' => '',
);
var $production = array(
'driver' => 'mysql',
'persistent' => false,
'host' => '127.0.0.1',
'login' => 'xxx',
'password' => 'xxx',
'database' => 'xxxx',
'prefix' => '',
);
function __construct()
{
if (IS_LIVE) {
$this->default = $this->production;
} else {
$this->default = $this->default;
}
}
}
真棒解决方案,谢谢! – joseym 2011-10-17 20:49:13
我发现这篇文章提供了一个非常强大的方法来设置这种基于环境的DB配置文件管理方法: http://www.sitepoint.com/deploy-cakephp-apps-on-appfog-the-right-方式/ – 2015-06-01 22:31:45