Codeigniter サイトを localhost でテストしてから、サーバーで更新します。それらを切り替えるには、多くの調整関連の問題が伴います。
だから私はそれを1つの定数だけで設定したい: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.