首先,由于这是我第一次在这里发布问题,我需要更多的时间来适应这个问题,因此对本文引起的任何方便感到抱歉。CodeIgniter和HMVC问题
Q1。我想创建2 “主控制器” 为前端和后端这样的:
- MY_Controller延伸是CI_Controller
- 前端延伸MY_Controller和所有前端控制器将延长FrontEnd。
- 后端延伸MY_Controller和所有后端控制器将延伸后端。
用HMVC(MX)做这件事的最好方法是什么?
感谢@韦斯利默奇给出的想法把MY_Controller,前端,后端到MY_Controller.php 3个类的想法,但我认为把每个类放在一个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个主题strutured这样的:
- ./application/views/ THEME1 /view_files.php
- 。/应用/视图/ THEME2 /view_files.php
但在HMVC,视图文件夹内的文件夹分开,如果我想要实现多个主题,通常我必须这样做:
- ./application/modules/ 模块1 /视图/ THEME1 /view_files.php
- ./application/modules/ 模块1 /视图/ 主题2 /view_files.php
- ./application/modules/ 模块2 /视图/ THEME1 /view_files.php
- ./application/modules/ 模块2 /视图/ THEME2 /view_files.php
这不是我想要的,因为我想提出一个主题的所有视图文件放到一个文件夹以后,如果我想创建一个新的主题,我将只需要复制一个主题文件夹。但是我想知道如何在不破坏HMVC模型的情况下做到这一点(因为据我所知,在HMVC模型中,模型,视图,控制器必须位于一个模块文件夹中 - 至少在CI中)。这是我陷入困境的冲突。
感谢韦斯利,我没有尝试,但应该工作。 –
我想创建2个库从MY_Controller.php扩展并自动加载它们。这会工作吗? 关于主题,我想有多个主题的看法,如: - ** /视图/ THEME1/view_files.php ** - ** /视图/ THEME2/view_files.php ** 关于JS/CSS /图像,我可以安排自己。 一开始我会修复主题,但后来我可能会允许用户选择。使用MVC,我可以将主题放在**/views/**的子文件夹中,但是使用HMVC,我必须找到另一种方式将它们安排到主题中,因为视图文件夹是分开的(我希望所有查看相同主题的文件都将只有一个文件夹).. –
对不起,我忘了提及在1个文件中创建2个类,我想创建2个库Backend和Frontend从MY_Controller扩展并在配置文件中自动加载后端和前端。然后在控制器中,我将扩展为:'class Blog extends Frontend' –