CI 3.0.3 と最新のHMVC Extensionでコーディング中に問題が発生しました。いくつかのライブラリ、ヘルパーなどをオートロードしています。セッションライブラリも。今、私はいくつかのコントローラを持っていますが、1 つを除いてすべて正常に動作しています。
そのコントローラーでは、次のコードを使用します。
modules::run($module->module . '/' . $module->controller . '/' . $module->method, unserialize($block->configuration));
この静的関数を使用しているときにエラーが発生しました:
Unable to locate the specified class: Session.php
ログには、Session クラスが初期化されたことが示されています。
INFO - 2015-12-01 09:41:40 --> Session: Class initialized using 'database' driver.
このエラーが発生した理由はありますか?
編集: - - - - - - - - - - - - - - - - - - - - - - - - -----------------------
以下のような愚かな答えを防ぐために...
CI では、リクエストごとに複数のコントローラーを呼び出すことはできません。したがって、HMVC を実現するには、コントローラーをシミュレートする必要があります。ライブラリ、またはこの「Modular Extensions HMVC」コントリビューションを使用して実行できます。
ライブラリと「モジュラー HMVC」HMVC クラスの使用の違いは次のとおりです。 1. HMVC クラス内で CI インスタンスを取得して使用する必要がない 2. HMVC クラスは、ライブラリ ディレクトリではなく、モジュール ディレクトリに格納されます。
編集 2: ----------------------------------------------- ----------------------
さらに質問がある場合:
- はい、セッション ライブラリが問題です
- はい、この HMVC プラグインと組み合わせた場合のみ
- はい、静的メソッドを使用する場合のみ
modules::run();
- いいえ、コントローラーでコントローラーをシミュレートするには、このメソッドが必要です