基本上,这是有史以来最大的问题之一:在开发/登台工作流程中使用settings.php有哪些方式?
现在,我已经按照如下所示设置了settings.php文件,并且我的开发基于服务器的$ HOST指令进行,这意味着我可以在dev.example.com上开发(共享)服务器local.example。 com(用于我的本地计算机)(以及其他开发人员的本地代码结帐),以及www.example.com(或仅用于example.com)用于实时站点。
(此代码位于settings.php的“数据库设置”部分中):
$host = $_SERVER['HTTP_HOST'];
$base_url = 'http://'.$host;
$cookie_domain = $host;
switch($host) {
case 'example.com': # Production server
$db_url = 'mysqli://prod_sql_user:password@127.0.0.1/prod_db';
$update_free_access = FALSE;
$conf = array (
// Set production config options here...
'example_setting' => 0,
);
break;
case 'dev.example.com': # Development server
$db_url = 'mysqli://dev_sql_user:password@127.0.0.1/dev_db';
$update_free_access = FALSE;
$conf = array (
// Set production config options here...
'example_setting' => 0,
);
break;
case 'local.example.com': # Local server
$db_url = 'mysqli://local_sql_user:password@127.0.0.1/local_db';
$update_free_access = FALSE;
$conf = array (
// Set production config options here...
'example_setting' => 0,
// Turn off most core caching.
'cache_inc' => 'includes/cache.inc',
'cache' => CACHE_DISABLED,
);
break;
}
?>
这在大多数情况下都能很好地工作,但是这意味着我们共享的settings.php文件中有很多多余的代码……有没有更好的方法?