0

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.
4

1 に答える 1