HMVC Hex 发布版本的使用总结
本帖最后由 lynn.wang 于 2012-3-9 11:54 编辑1.先搭建好干净的 CodeIgnter 环境(避免受其他设置等影响浪费大量时间)
2.将 CodeIgnter-HMVC 文件夹中
( 下载地址 https://github.com/CodeIgniter/HMVC )
application\core\Module.php
application\core\MY_Loader.php
application\core\MY_Router.php
application\third_party\module_proxy.php
4个文件拷贝到 CodeIgnter application 对应的目录下
(这个就是实现 HMVC 的代码,放进去即可,也可以学习下哈)
3.在 CodeIgnter application 下建一个 modules 文件夹(剩下的就是 创建模块 和 使用模块)
4.下面将开始使用 Hex 提供的 HMVC, 举个小例子
假设我们要在视图 welcome_message.php 中加载一个模块 test
setup1: 在 modules 下建一个 test 文件夹
setup2: 在 test 下分别建立 controllers , models , views 这3个文件夹
setup3: 先创建好test模块
A.在controllers中创建 example.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
类名语法: 模块名_文件名_module (注意模块名,文件名首字母要大写)
并继承的 Hex 写的 CI_Module
*/
class Test_Example_module extends CI_Module {
public function index()
{
// 这是装载本模块的模型,如果在本模块下找不到,则自动装载全局模型
$this->load->model('M_example_model');
$this->M_example_model->start();
$this->load->view('view_test');
}
}
B.在models中创建 M_example_model.php
<?phpif (!defined('BASEPATH')) exit('No direct script access allowed');
/**
类名语法: 模块名_文件名 (注意模块名,文件名首字母要大写)
并继承的 Hex 写的 CI_Module
*/
class Test_M_example_model extends CI_Model {
function start()
{
echo '<p>Test_M_example_model</p>';
}
}
C.在views中创建 view_test.php
<?php
echo "This is the test module's view!";
?>
setup4: 先在视图 welcome_message.php 中合适的位置添加所要加载的模块的代码
例如: 在body的最后面添加
<?php $this->load->module('test\example'); ?>
也就是由 模块路径\控制器 组成的
此时就会加载 test 模块,并调用 example 控制器
此时访问 localhost 可以看到原来的 welcome_message 界面会新增展示
Test_M_example_model
This is the test module's view!aaa
使用方法基本如上,如果需要在 modules 和 module 之间添加一个目录的话
对应类名的语法前面加 目录_上述类名语法
调用的时候也是在前面加上目录名即可
如果有写的不好的地方,欢迎指出修改,谢谢!
先占个沙发再慢慢试{:soso_e113:} 自然 发表于 2012-3-9 13:12 static/image/common/back.gif
先占个沙发再慢慢试
嘻嘻我自己也试了很多次的!
应该好用!个人感觉哈! 8错的分享,顶下 A.在controllers中创建 example.php
PHP
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
类名语法: 模块名_文件名_module (注意模块名,文件名首字母要大写)
并继承的 Hex 写的 CI_Module
*/
class Test_Example_module extends CI_Module {
这里为什么是 module? application\core 下有 hex 写好的 module
你可以去看看哦!
仔细看哦
别把 model和 module 看错了哦!! remark下 iserich 发表于 2012-3-14 10:27 static/image/common/back.gif
A.在controllers中创建 example.php
PHP
因为是我规定的。。。。没有理由,哈哈 Hex 发表于 2012-3-19 10:50 static/image/common/back.gif
因为是我规定的。。。。没有理由,哈哈
强大的Hex
一直都在用老大的HMVC,谢谢分享