まず、この投稿にご迷惑をおかけしましたことをお詫び申し上げます。ここに質問を投稿するのはこれが初めてであり、これに慣れるにはもっと時間が必要です。
Q1。次のように、フロントエンドとバックエンド用に2つの「マスターコントローラー」を作成します。
- MY_ControllerはCI_Controllerを拡張します
- フロントエンドはMY_Controllerを拡張し、すべてのフロントエンドコントローラーはフロントエンドを拡張します。
- BackEndはMY_Controllerを拡張し、すべてのバックエンドコントローラーはBackEndを拡張します。
HMVC(MX)でそれを行うための最良の方法は何ですか?
MY_Controller、Frontend、Backendの3つのクラスをMY_Controller.phpに入れるというアイデアを与えてくれた@Wesley Murchに感謝しますが、各クラスを1つのphpファイルに入れる方が良い(よりクリーン)と思います。それとも私は間違っていますか?私はこのような構造を作成することを考えていました:
- ./core/MY_Controller.php(MX_Controllerを拡張)
- ./libraries/Backend.php(MY_Controllerを拡張します)
- ./libraries/Frontend.php(MY_Controllerを拡張)
- autoload.phpのバックエンドとフロントエンドの自動ロード
- すべてのフロントエンドコントローラーはフロントエンドを拡張します(例
class Blog extends Frontend
:) - すべてのバックエンドコントローラーはバックエンドを拡張します(例
class Admin extends Backend
:)
これは、バックエンド/フロントエンドコントローラーにinclude_onceまたはrequire_once: ./libraries/ Backend.phpまたは./libraries/Backend.phpのコードをもう1行追加しなくても機能しますか?
Q2。HMVCで複数のテーマを実装するにはどうすればよいですか?たとえば、MVCでは、次のように2つのテーマを構成できます。
- ./application/views/ theme1 /view_files.php
- ./application/views/ theme2 /view_files.php
しかし、HMVCでは、ビューフォルダーは別々のフォルダー内にあり、複数のテーマを実装する場合は、通常、次のようにする必要があります。
- ./application/modules/ module1 / views / theme1 /view_files.php
- ./application/modules/ module1 / views / theme2 /view_files.php
- ./application/modules/ module2 / views / theme1 /view_files.php
- ./application/modules/ module2 / views / theme2 /view_files.php
テーマのすべてのビューファイルを1つのフォルダーに入れたいので、それは私が望んでいることではありません。後で新しいテーマを作成する場合は、1つのテーマフォルダーのみを複製する必要があります。しかし、HMVCモデルを壊さずにそれを行うにはどうすればよいのでしょうか(私が知る限り、HMVCモデルでは、モデル、ビュー、コントローラーは1つのモジュールフォルダーにある必要があります-少なくともCIでは)。それは私が立ち往生している紛争です。