首先,很抱歉这篇文章带来的任何便利,因为这是我第一次在这里发布问题,我需要更多时间来适应这个问题。
Q1。我想为前端和后端创建 2 个“主控制器” ,如下所示:
- MY_Controller扩展CI_Controller
- FrontEnd扩展MY_Controller并且所有前端控制器都将扩展FrontEnd。
- BackEnd扩展MY_Controller并且所有后端控制器都将扩展BackEnd。
使用 HMVC (MX) 的最佳方法是什么?
感谢@Wesley Murch 提出将 3 个类 MY_Controller、Frontend、Backend 放入 MY_Controller.php 的想法,但我认为将每个类放在一个 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 ,这是否可行?
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
这不是我想要的,因为我想将一个主题的所有视图文件放在一个文件夹中,然后,如果我想创建一个新主题,我只需要复制一个主题文件夹。但我想知道如何在不破坏 HMVC 模型的情况下做到这一点(因为据我所知,在 HMVC 模型中,模型、视图、控制器必须位于一个模块文件夹中 - 至少使用 CI)。这就是我陷入的冲突。