CodeIgniter HMVC 扩展

扩展

在 github 上的地址:https://github.com/CodeIgniter/HMVC

关于 HMVC 的理解:总结为粗浅的话,把 MVC 扩展为多个等级,每个等级有独立的 MVC。而从属于 module 下的 MVC,可被做为另外的 MVC 调用:

<?php $this->load->module(‘test2/home_made‘); ?>

上述可做为页面片段,被处处调用,相当于 PHP 里的 require 。

权限

如果出现 module 找不到的情况,问题可能出在目录读取权限上。在文件 application/core/MY_Loader.php 大约 127 行:

if (file_exists(APPPATH.‘modules/‘.$segments[0].‘/controllers/‘.$segments[1].EXT))
            {
                $path = ‘‘;
                $module = $segments[0];
                $controller = $segments[1];
                $method = isset($segments[2]) ? $segments[2] : ‘index‘;
            }

file_exists 明明该返回 true 的,结果返回了 false。

我是直接设置为 755  搞定的。

版本

这个扩展是好几年前的了,我将其安装到最新的 3.0.0 版本,发现有错误显示,应该是不支持的。换成 2.2.0 就可以了。但是,database 如果没有显式地自动载入,modules 里的 model 会出现错误:$this->db 中的 $db 变量找不到。

$autoload[‘libraries‘] = array(‘database‘);

帖子

[2.1.3]为 CodeIgniter 增加 HMVC 支持【更新日期:2013.4.18】

时间: 2024-10-12 04:49:32

CodeIgniter HMVC 扩展的相关文章

Codeigniter MongoDB扩展之使用Aggregate实现Sum方法

本篇文章由:http://xinpure.com/2015/01/07/codeigniter-mongodb%e6%89%a9%e5%b1%95%e4%b9%8b%e4%bd%bf%e7%94%a8aggregate%e6%96%b9%e6%b3%95%e5%ae%9e%e7%8e%b0mysql%e7%9a%84sum%e6%96%b9%e6%b3%95/ Codeigniter MongoDB扩展之使用Aggregate实现Sum方法 以下就是我在使用 Codeigniter 的 Mong

codeingiter修改版本支持多module

最近刚入职一家公司发现该公司采用的框架是古老的CI1.7.2加matchbox扩展而来的遂研究一翻 发现直接在其中进行升级有些麻烦索性修改新发布的CI3.0 为多module支持 现贡献给大家使用 此版本是在CI3.0版本的基础上修改开发出来的 此版本的框架对CI3.0进行了HMVC扩展 此扩展主要通过 EX_Loader.php文件进行扩展 简要说明如下: 1.application下为应用目录 2.common为公共文件夹 其中可以存放公共配置文件,核心文件,帮助文件,hooks, lang

smarty 3 + codeigniter 2 + hmvc

参考资料 https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/src/fecd39ccdf56?at=default http://ilikekillnerds.com/2010/11/using-smarty-3-in-codeigniter-2-a-really-tiny-ci-library/ https://github.com/Vheissu/Ci-Smarty smarty 3 + codeign

CodeIgniter学习笔记三:扩展CI的控制器、模型

一.扩展CI中的控制器 有时需要对CI中的控制器作统一操作,如进行登录和权限验证,这时就可以通过扩展CI控制器来实现. 扩展CI控制器只需要在application/core文件夹中建一个继承自CI_Controller类的MY_Controller类即可,然后在这个类中实现自己需要的逻辑. 关于上面这句话,有两点需要解释一下: 1.为什么要在application/core文件夹中:是因为基类CI_Controller是在system/core文件夹中,这里需要跟system中对应. 2.为什

CodeIgniter学习笔记(九)&mdash;&mdash;扩展控制器

CI的控制器默认继承自CI_Controller,如果要扩展控制器,需要定义一个从CI_Controller派生的控制器,所有的自定义控制器都继承这个新控制器. 在application/core目录下,有与system目录下类似的目录结构,比如core.helpers.language.libraries目录,扩展控制器就是在application/core目录下自定义控制器,该控制器类从CI_Controller继承,类似的,如果要扩展系统的功能,就在application下的对应目录新增自

扩展Codeigniter控制器

<?php class MY_Controller extends CI_Controller { public function __construct() { parent::__construct(); if(intval($this->session->userdata('id')) == 0) redirect(site_url('login/index')); } //前台加载视图方法 public function _template($template, $data =

总结Codeigniter的一些优秀特性

总结Codeigniter的一些优秀特性 最近准备接手改进一个别人用Codeigniter写的项目,虽然之前也有用过CI,但是是完全按着自己的意思写的,没按CI的一些套路.用在公众的项目,最好还是按框架规范来,所以还是总结一下,免得以后别人再接手的时候贻笑大方. 1. 首先是 MVC 如果你还不知道 MVC ,应该尽快的学习,你会很快的体会到在 Model 中数据访问,在 Controller 中进行业务逻辑,在 Views 中编写 HTML 代码的价值.如果你之前没有使用过这种模式写过程序,你

从CI源码学习PHP高级开发技能——CodeIgniter框架源码深度剖析(4):输出类Output.php

Output类参考说明(摘抄CI手册): 在一般情况下,你可能根本就不会注意到输出类,因为它无需你的干涉, 对你来说完全是透明的.例如,当你使用 加载器 加载一个视图文件时,它会自动传入到输出类,并在系统执行的最后由 CodeIgniter 自动调用.尽管如此,在你需要时,你还是可以对输出进行手工处理. 在说Output类前先说几个知识点和编程技巧: $_SERVER['HTTP_ACCEPT_ENCODING'] .对应请求头是Accept-Encoding:"gzip, deflate&qu

CodeIgniter辅助函数

辅助函数是帮助我们完成特定任务的函数.每个辅助函数文件仅仅是一些函数的集合.例如,URL Helpers 可以帮助我们创建链接,Form Helpers 可以帮助我们创建表单,Text Helpers 提供一系列的格式化输出方式,Cookie Helpers 能帮助我们设置和读取COOKIE, File Helpers 能帮助我们处理文件,等等.跟其他部分不同的是,辅助函数不是用类的方式来实现的.它们仅仅是一些简单的过程处理函数. 每个辅助函数处理一个特定的任务,并且不必依靠其他函数. Code