何謂HMVC?
可以直接看wiki的解釋:http://zh.wikipedia.org/wiki/HMVC
簡單解釋就是模組化。
以下實作版本是wiredesignz的5.4版
可以到官方的http://bitbucket.org下載最新的版本
而Codeigniter的版本是 2.1.0
實作
Step 1 - 解壓、複製檔案:
下載好HMVC的檔案後,直接解壓縮,裡面會有二個檔案夾:
把這二個檔案夾裡的檔案分別複製到Codeigniter資料夾的:
Step 2 - 修改config檔:
在Codeigniter裡的config/config.php的檔案裡,加入以下程式碼:
$config['modules_locations'] = array(
APPPATH.'modules/' => '../modules/',
);
Step 3 - 新增modules資料夾
在Application裡新增一個名為 modules 的資料夾,並且在裡面直接新增模組的資料夾,假設我要新增的模組叫news
那麼在Application/modules裡的應該會有以下資料夾:
-news
-controllers
-views
-models
這裡面的MVC的用法,就和原本的CI的Application一樣了
要注意的有二點:
第一:要把在modules裡的controller的extend從CI_Controller改成MX_Controller
第二(重要):要呼叫模組的controllerd的extend從CI_Controller改成MX_Controller
否則會出現以下錯誤:
PHP Fatal error: Cannot redeclare class CI in ...application/third_party/MX/Base.php on line 57
舉例來說,如果我有在home的這個controller裡用到news模組,那麼我就要把home這個controller的 extend改成
class Home extends MX_Controller {
...
}
Step 4 - 測試:
當你在modules中建好mvc架構後,可以直接打網址
http://yoursite.com/index.php/{Module名稱}/{Controller名稱}/{Method名稱}
來測試你的HMVC架構是否有完成設定
若要在你的view中,直接呼叫模組,可以在你的view中直接插入以下語法
<? echo Modules::run( 'course_display/course_list/index' ); ?>
或是如果你要帶參數進模組,則可以使用
<? echo Modules::run( 'course_display/course_list/index','參數1','參數2' ); ?>
That's it !
可以直接看wiki的解釋:http://zh.wikipedia.org/wiki/HMVC
簡單解釋就是模組化。
以下實作版本是wiredesignz的5.4版
可以到官方的http://bitbucket.org下載最新的版本
而Codeigniter的版本是 2.1.0
實作
Step 1 - 解壓、複製檔案:
下載好HMVC的檔案後,直接解壓縮,裡面會有二個檔案夾:
- core
- third_party
把這二個檔案夾裡的檔案分別複製到Codeigniter資料夾的:
- Application/core
- Application/third_party
Step 2 - 修改config檔:
在Codeigniter裡的config/config.php的檔案裡,加入以下程式碼:
$config['modules_locations'] = array(
APPPATH.'modules/' => '../modules/',
);
Step 3 - 新增modules資料夾
在Application裡新增一個名為 modules 的資料夾,並且在裡面直接新增模組的資料夾,假設我要新增的模組叫news
那麼在Application/modules裡的應該會有以下資料夾:
-news
-controllers
-views
-models
這裡面的MVC的用法,就和原本的CI的Application一樣了
要注意的有二點:
第一:要把在modules裡的controller的extend從CI_Controller改成MX_Controller
第二(重要):要呼叫模組的controllerd的extend從CI_Controller改成MX_Controller
否則會出現以下錯誤:
PHP Fatal error: Cannot redeclare class CI in ...application/third_party/MX/Base.php on line 57
舉例來說,如果我有在home的這個controller裡用到news模組,那麼我就要把home這個controller的 extend改成
class Home extends MX_Controller {
...
}
Step 4 - 測試:
當你在modules中建好mvc架構後,可以直接打網址
http://yoursite.com/index.php/{Module名稱}/{Controller名稱}/{Method名稱}
來測試你的HMVC架構是否有完成設定
若要在你的view中,直接呼叫模組,可以在你的view中直接插入以下語法
<? echo Modules::run( 'course_display/course_list/index' ); ?>
或是如果你要帶參數進模組,則可以使用
<? echo Modules::run( 'course_display/course_list/index','參數1','參數2' ); ?>
That's it !
沒有留言:
張貼留言