我在本地主机上测试我的 Codeigniter 站点,然后在服务器上更新它。在它们之间切换涉及到很多与调整相关的问题。
所以我只想通过一个常量来配置它:MYCUSTOM_SERVER_LOCATION
然后根据我的服务器(localhost 或 myhost)的位置配置我的数据库连接和密码。唯一的问题是 database.php 在mysettings
库之前运行。即使在配置文件而不是库中进行设置也会产生相同的结果。
[更新]
应用程序/配置/autoload.php:
...
$autoload['libraries'] = array('mysettings','database','session');
...
应用程序/库/mysettings.php:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
define("MYCUSTOM_SERVER_LOCATION", "localhost");
class mysettings {
//////////////////////////////////////////////////
// option: localhost
// option: 000webhost
//$config["mycustom_server"]="localhost";
}
应用程序/配置/数据库.php
if(MYCUSTOM_SERVER_LOCATION=="localhost")
{
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = '...';
$db['default']['password'] = '...';
$db['default']['database'] = '...';
}
else if(MYCUSTOM_SERVER_LOCATION=="myserver")
{
$db['default']['hostname'] = '...';
$db['default']['username'] = '...';
$db['default']['password'] = '...';
$db['default']['database'] = '...';
}
else
{
echo "Unknown server.";
}
输出结果:
A PHP Error was encountered
Severity: Notice
Message: Use of undefined constant MYCUSTOM_SERVER_LOCATION - assumed 'MYCUSTOM_SERVER_LOCATION'
Filename: config/database.php
Line Number: 51
A PHP Error was encountered
Severity: Notice
Message: Use of undefined constant MYCUSTOM_SERVER_LOCATION - assumed 'MYCUSTOM_SERVER_LOCATION'
Filename: config/database.php
Line Number: 58
Unknown server.