3

私は HMVC を検索し、それが何であるかとその利点を知っています。

モジュール化: アプリケーションの異なる部分間の依存関係の削減。

編成: 関連するトライアドごとにフォルダーを用意することで、作業負荷が軽減されます。

再利用性: 設計の性質上、ほぼすべてのコードを簡単に再利用できます。

拡張性: メンテナンスの容易さを犠牲にすることなく、アプリケーションの拡張性を高めます。

しかし、HMVC を使用しない Codeigniter だけでは、コントローラーと複数のモデル フォルダーと複数のビュー フォルダー用に異なるサブフォルダーを作成できます。HMVC を使用する正確な理由がわかりません。

4

2 に答える 2

3

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvcで見つけました。

これは、ビューとそのデータをビュー内にロードする必要がある場合に最も役立ちます。ページにショッピング カートを追加することを考えてみてください。ショッピング カートには、モデルを呼び出してカート データを取得する独自のコントローラーが必要です。次に、コントローラーはデータをビューにロードする必要があります。そのため、ページとショッピング カートを処理するメイン コントローラーの代わりに、ショッピング カート MVC をページに直接読み込むことができます。

メインコントローラーはそれについて知る必要はなく、完全に分離されています。CI では、リクエストごとに複数のコントローラーを呼び出すことはできません。したがって、HMVC を実現するには、コントローラーをシミュレートする必要があります。ライブラリ、またはこの「Modular Extensions HMVC」コントリビューションを使用して実行できます。

ライブラリと「モジュラー HMVC」HMVC クラスの使用の違いは次のとおりです。

  1. HMVC クラス内で CI インスタンスを取得して使用する必要はありません
  2. HMVC クラスは、ライブラリ ディレクトリではなくモジュール ディレクトリに格納されます。
于 2014-06-15T20:47:26.070 に答える
1

ネイティブ CI は HMVC ではなく、単なる MVC だと思います。その中には「コントローラー」、「モデル」、「ビュー」のみがあり、「モジュール」はありません。

したがって、HMVC のメリットが必要ない場合は、CI が HMVC である理由について心配する必要はありません。

ところで、HMVC パターンとモジュール化のメリットが本当に必要な場合は、次の拡張機能を使用できます。

https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc

https://github.com/jenssegers/codeigniter-hmvc-modules

于 2014-06-15T03:26:11.723 に答える