不确定它是否理想,但例如在我的数据库登录配置中,我让它检测代码正在运行的主机(只是下面的部分片段):
$active_group = "default";
if($_SERVER['SERVER_NAME'] == 'argent.local' ||
$_SERVER['SERVER_NAME'] == 'beta.website.com')
$active_group = "development";
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "username";
$db['default']['password'] = "password";
$db['default']['database'] = "dbname";
$db['default']['dbdriver'] = "mysql";
$db['development']['hostname'] = "localhost";
$db['development']['username'] = "username_dev";
$db['development']['password'] = "password_dev";
$db['development']['database'] = "dbname_dev";
$db['development']['dbdriver'] = "mysql";
(argent.local 这里是我的本地开发箱)我也在其他几个地方这样做,比如在主类中,我根据服务器是生产还是本地开发启用/禁用 PHP 错误输出(因为错误输出在dev,但我从不希望在生产中输出):
if($_SERVER['SERVER_NAME'] == 'argent.local' ||
$_SERVER['SERVER_NAME'] == 'beta.website.com')
error_reporting(E_ALL);
else error_reporting(0);
这样,我签入 SVN 的代码将在 live 和 dev box 上运行,而无需跟踪将哪个部署在哪里。这样我就可以擦除所有现有文件并重新部署,而不必担心移动任何文件。