nut*_*ler 8 cakephp production-environment
我是一名RoR开发人员,但我目前正在与CakePHP合作开展一个我无法调整服务器的项目.在我的Rails生产服务器中,Passenger设置为自动使用"生产"环境,覆盖本地应用程序设置.我想设置我的cakephp应用程序来做同样的事情.你通常如何用CakePHP实现这一目标?您是否设置了域解析器,或者只是将core.php和database.php保留在版本控制之外?在此先感谢Davide
dr *_*ter 13
如果我正确地理解了这个问题,那么这可能是你需要的:
简而言之,覆盖DATABASE_CONFIG构造函数:
class DATABASE_CONFIG
{
//initalize variable as null
var $default=null;
//set up connection details to use in Live production server
var $prod =
array(
// ...
);
// and details to use on your local machine for testing and development
var $dev =
array(
// ...
);
function __construct ()
{
if(isset($_SERVER['SERVER_NAME'])){
switch($_SERVER['SERVER_NAME']){
case 'digbiz.localhost':
$this->default = $this->dev;
break;
case 'digbiz.example.com':
$this->default = $this->prod;
break;
}
}
else // we are likely baking, use our local db
{
$this->default = $this->dev;
}
}
}
Run Code Online (Sandbox Code Playgroud)
在bootstrap.php中定义prod/dev可能更好.这样您就可以在应用程序中重用常量.
bootstrap.php中:
define('IS_PROD',(isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] == 'cubismedia.com') ? true : false);
Run Code Online (Sandbox Code Playgroud)
database.php中:
function __construct() {
if (IS_PROD) {
$this->default = $this->prod;
} else {
$this->default = $this->dev;
}
}
//development
public $dev = array(
//db settings
);
//production
public $prod = array(
//db settings
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9527 次 |
| 最近记录: |