0

複数のクライアントに対して同じコア ファイルを持つ CodeIgniter (CI) でアプリケーションを作成する必要があります。すべてのクライアントは、自分の index.php ファイルがある自分のフォルダー (サブドメインを使用) でアプリケーションを実行します。その index.php には、そのユーザー データベースの構成が含まれています (すべてのユーザーには独自のデータベースがあります)。CI のすべてのフィールドとアプリケーションを 1 つの追加クラスにラップし、すべてのサブドメインのすべてのフォルダーにそのクラスのインスタンスを作成しようとしました。しかし、それはうまくいきませんでした。

次に、すべてのクライアント サブディレクトリの CI フォルダからメインの index.php を呼び出そうとしました。ファイル構造のイメージは次のとおりです: http://img208.imageshack.us/img208/8596/shx8.png

すべてのサブドメイン フォルダー内の index.php は次のようになりました。

include "../../../application/engine.php";
$app = new Engine();
$app->start();

次に、そのクライアント index.php を実行すると、次のようになります。

    Your system folder path does not appear to be set correctly. Please open the 
following file and correct this: index.php

そして、CI index.phpフォルダーのパスを次のように変更しました:

$system_path = '../../../application/engine/system';
$application_folder = '../../../application/engine/application';

次に、次のエラーが表示されます。

 Fatal error: Call to a member function item() on a non-object in C:\wamp\www\projectX\application\engine\system\core\Utf8.php on line 47

ご覧のとおり、system\core ファイルにエラーが表示されます。編集しないでください。

Utf8.php の 47 行目は次のとおりです。

AND $CFG->item('charset') == 'UTF-8'

$CFG は次のように定義されます。

global $CFG;

その行をコメントしても、別のファイルで次のエラーが発生します。

Fatal error: Call to a member function elapsed_time() on a non-object in C:\wamp\www\projectX\application\engine\system\core\Output.php on line 360

Output.php の 360 行目は次のとおりです。

$elapsed = $BM->elapsed_time('total_execution_time_start', 'total_execution_time_end');

この問題を解決してこのように仕上げる方法はありますか、それともファイルとフォルダーの構成を変える必要がありますか? そして、それを行う方法は?

4

1 に答える 1