lynn.wang 发表于 2012-3-9 11:52:19

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 之间添加一个目录的话
      对应类名的语法前面加 目录_上述类名语法
      调用的时候也是在前面加上目录名即可

如果有写的不好的地方,欢迎指出修改,谢谢!
      
      


自然 发表于 2012-3-9 13:12:20

先占个沙发再慢慢试{:soso_e113:}

lynn.wang 发表于 2012-3-9 13:18:25

自然 发表于 2012-3-9 13:12 static/image/common/back.gif
先占个沙发再慢慢试

嘻嘻我自己也试了很多次的!
应该好用!个人感觉哈!

muyeyifan 发表于 2012-3-10 07:54:55

8错的分享,顶下

iserich 发表于 2012-3-14 10:27:27

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?

lynn.wang 发表于 2012-3-14 14:44:55

application\core 下有 hex 写好的 module
你可以去看看哦!
仔细看哦
别把 model和 module 看错了哦!!

muyeyifan 发表于 2012-3-18 17:51:04

remark下

Hex 发表于 2012-3-19 10:50:14

iserich 发表于 2012-3-14 10:27 static/image/common/back.gif
A.在controllers中创建 example.php
PHP

因为是我规定的。。。。没有理由,哈哈

lynn.wang 发表于 2012-3-19 13:59:05

Hex 发表于 2012-3-19 10:50 static/image/common/back.gif
因为是我规定的。。。。没有理由,哈哈

强大的Hex

chenhan 发表于 2012-3-19 14:56:24

一直都在用老大的HMVC,谢谢分享
页: [1] 2 3
查看完整版本: HMVC Hex 发布版本的使用总结