HMVCHierarchical-Model-View-Controller),也可以叫做 Layered MVC。顾名思义,就是按等级划分的 MVC 模式,简单的解释就是把MVC又细分成了多个子 MVC,每个模块就分成一个 MVC。

使用 HMVC 的好处就是可以降低各个功能模块之间的耦合性,提高代码复用性,使得每个功能都可以独立出来,每个模块都有自己的 MVC 结构,这就有点像 ActiveX 控件,每个控件都有自己的行为,控件之间互不影响。

MVC结构图:

 application
|- controllers
|- controllers1.php
|- controllers2.php
|- ...
|- models
|- models1.php
|- models2.php
|- ...
|- views
|- views1
|- index.php
|- footer.php
|- ...
|- views2
|- index.php
|- footer.php
|- ...
|- ...

HMVC结构图:

 application
|- modules
|- module1
|- controllers
|- controllers.php
|- models
|- models.php
|- views
|- index.php
|- footer.php
|- ...
|- module2
|- controllers
|- controllers.php
|- models
|- models.php
|- views
|- index.php
|- footer.php
|- ...
|- ....
|- controllers
|- ...
|- models
|- ...
|- views
|- ...

PHP之HMVC的更多相关文章

  1. HMVC

    HMVC(Hierarchical-Model-View-Controller),也可以叫做 Layered MVC.顾名思义,就是按等级划分的 MVC 模式,简单的解释就是把MVC又细分成了多个子 ...

  2. Codeigniter使用HMVC(一)

    涉及三方代码: https://tutorials.kode-blog.com/codeigniter-admin-panel https://bitbucket.org/wiredesignz/co ...

  3. smarty 3 + codeigniter 2 + hmvc

    参考资料 https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/src/fecd39ccdf56?at=defau ...

  4. MVC缺点

    MVC的不足之处表现在以下几个方面: (1) 增加了系统结构和实现的复杂性.对于简单的界面,严格遵循MVC,使模型.视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率. (2 ...

  5. info.plist、pch和四大对象(UIApplication、UIApplicationDelegate、UIWindow、UIViewController)

    本文目录 1.程序配置文件info.plist,全局头文件pch 2.应用程序对象UIApplication介绍 3.UIApplicationDelegate介绍,程序启动过程 4.UIWindow ...

  6. Thinkphp框架

    MVC思想: 1. 简单来说, M 即模型, m是Model的第一个字母,它用于管理程序的数据,因此它也是连接我们的PHP程序和数据库的功能.通常在模型类这一块,框架通常会使用ORM(对象关系映射). ...

  7. duxcms SQL Injection In /admin/module/loginMod.class.php

    目录 . 漏洞描述 . 漏洞触发条件 . 漏洞影响范围 . 漏洞代码分析 . 防御方法 . 攻防思考 1. 漏洞描述 duxcms是一款采用PHP开发,基于HMVC规则开发适合中小企业.公司.新闻.个 ...

  8. 快速稳定的维护PHP

    Just to recap, previously we'd have this sort of thing: namespace me\adamcameron\testApp; use Guzzle ...

  9. 【转发】构建高可伸缩性的WEB交互式系统(中)

    原文转自:http://kb.cnblogs.com/page/503953/ 在<构建高可伸缩性的WEB交互式系统>的第一篇,我们介绍了Web交互式系统中平台的可伸缩性.本文将描述模块的 ...

随机推荐

  1. CSMA/CD协议——学习笔记

    CSMA/CD协议要点: 1)适配器从网络层获得一个分组,加上以太网的首部和尾部,组成以太网帧,放入适配器的缓存中,准备发送. 2)若适配器检测到信道空闲(即在96比特时间内没有检测到信道上有信号), ...

  2. UVA1395

    // UVa1395 Slim Span // Rujia Liu #include<cstdio> #include<cmath> #include<cstring&g ...

  3. Tomcat7中配置Oracle 11g数据库DBCP连接池

    将       ojdbc6.jar       tomcat-jdbc-7.0.37.jar            拷贝到工程的WEB-INF\lib  下面 一.在Tomcat的配置文件Tomca ...

  4. PostgreSQL的 initdb 源代码分析之九

    继续:下面的是定义信号处理函数. /* * now we are starting to do real work, trap signals so we can clean up */ /* som ...

  5. c# 将PPT转换成HTML

    这只是一个小程序,就是将ppt转换成html,方法很多,为了以后备用,在此记录一下,也和大家分享 源码如下: using System; using System.Collections.Generi ...

  6. #define使用方法

    1.简单的define定义 #define MAXTIME 1000 一个简单的MAXTIME就定义好了,它代表1000,假设在程序里面写 if(i<MAXTIME){.........} 编译 ...

  7. Computer Science Theory for the Information Age-4: 一些机器学习算法的简介

    一些机器学习算法的简介 本节开始,介绍<Computer Science Theory for the Information Age>一书中第六章(这里先暂时跳过第三章),主要涉及学习以 ...

  8. 今天再分享一个TextView内容风格化的类

    /* * Copyright (C) 2014 Jason Fang ( ijasonfang@gmail.com ) * * Licensed under the Apache License, V ...

  9. VBoxGuestAdditions下载地址

    http://dlc.sun.com.edgesuite.net/virtualbox/

  10. Android基本控件之ListView(一)

    我们在使用手机的时候,通常看到,像通讯录,QQ列表样式的东西,这里来解释一下,其实那些都是一个ListView 今天,我们就来详细的讲解一下ListView这个控件 ListView中每条显示的数据都 ...