0

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();
  • いいえ、コントローラーでコントローラーをシミュレートするには、このメソッドが必要です
4

1 に答える 1

1

単純。

コントローラーをコントローラーにロードする場合は、次を使用します。

Modules::load();

Modules::run();または、メイン コントローラーによって読み込まれるビューに外部委託します。

単純。

于 2015-12-01T13:27:16.403 に答える