在 github 上的地址:https://github.com/CodeIgniter/HMVCphp
關於 HMVC 的理解:總結爲粗淺的話,把 MVC 擴展爲多個等級,每一個等級有獨立的 MVC。而從屬於 module 下的 MVC,可被作爲另外的 MVC 調用:html
<?php $this->load->module('test2/home_made'); ?>
上述可作爲頁面片斷,被到處調用,至關於 PHP 裏的 require 。git
若是出現 module 找不到的狀況,問題可能出在目錄讀取權限上。在文件 application/core/MY_Loader.php 大約 127 行:
github
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。app
我是直接設置爲 755 搞定的。codeigniter
這個擴展是好幾年前的了,我將其安裝到最新的 3.0.0 版本,發現有錯誤顯示,應該是不支持的。換成 2.2.0 就能夠了。可是,database 若是沒有顯式地自動載入,modules 裏的 model 會出現錯誤:$this->db 中的 $db 變量找不到。ui
$autoload['libraries'] = array('database');