用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5667|回复: 3
收起左侧

[库 Library] 基于hex老大的HMVC实现子模块类库的加载

[复制链接]
发表于 2013-8-31 23:04:17 | 显示全部楼层 |阅读模式
hex老大的HMVC,原帖地址:http://codeigniter.org.cn/forums/thread-1319-1-1.html

这个是个好东西,做完伸手派后,也分享点东西,或许有些童鞋会用得到,也当是挖坟了。。。。{:soso_e113:}

基于hex老大的HMVC扩展的小小改动,就加一句代码,就可以实现

$this->load->library('模块名/libaries/类库名');

用处:使用HMVC进行插件开发或者是分工合作时,因不同插件或模块的需求,需要导入不同的模块,假如一味地向根模块的libraries里堆,自然不方便管理,而且不也便区分,而通直接调用子模块里面的类库则可以大大地在类库扩展这一方面降低耦合性。对此因为太菜。。。分析了好久hex老大写的My_Loader.php文件里面的代码,重要把这个逻辑给稍微搞懂了,然后加了一句代码就实现了目的,一高兴就分享出来,就当是小弟一直向hex老大索取后的小小支持。

大家随便吐槽。。。{:soso_e136:}

修改的文件:
My_Loader.php

部分代码:
PHP复制代码
 
// Module 中的 Loader 类实例初始化时,自动调用此函数
    public function _ci_module_ready($class_path, $class_name)
    {
       
        $this->_ci_is_inside_module = true;
        $this->_ci_module_path = $class_path;
        $this->_ci_module_class = $class_name;
 
        $this->_ci_classes = array();
        $this->_ci_loaded_files = array();
        $this->_ci_models = array();
 
        // 添加module目录下的子模块l的ibrary类库的搜索路径,且优先级放到首位
        array_unshift($this->_ci_library_paths, APPPATH.'modules/'.$this->_ci_module_path.'/');
    }
 
 
复制代码


大功告成!!哈哈!!只是弄出来了,但原理性东西搞得还不透彻,就不献丑做做详细原有描述了,但可跟帖交流。



评分

参与人数 1威望 +5 收起 理由
Hex + 5 很给力!

查看全部评分

发表于 2013-9-2 15:05:04 | 显示全部楼层
牛人。希望以后多多分享哦。
发表于 2013-9-2 19:36:16 | 显示全部楼层
强烈支持~~~~
发表于 2013-9-3 07:50:40 | 显示全部楼层
不错~支持下

本版积分规则