如何使用codeigniter模块化扩展从Module加载库

时间:2012-05-11 09:44:39

标签: codeigniter hmvc

我需要使用Modular Extensions

从我的模块加载库

我的结构

模块/

模块/类别/文库

  • categories_class.php

模块/类别/控制器/

  • categories.php

    我需要在类别控制器中加载类别库。

任何一个手杖都帮助我?

2 个答案:

答案 0 :(得分:7)

我看到两个问题..

问题1

根据您的问题,您的类别模块未正确组织。 HMVC的整个目的是划分代码e.x;模块。鉴于您目前的问题,该结构如何允许您复制您的模块文件夹并将其粘贴到另一个应用程序? 答案:没有。

按照以下示例

应该是应用程序根目录中的以下内容:

/application/
   config
   modules/
    categories/
      views
      controllers/
        categories.php
      libraries/
        categories_class.php
      models
   libraries
   core
   controllers

问题2

根据用户指南:https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home

您必须在模块文件夹中引用的任何内容前面加上模块名称前缀。

例如: $this->load->library('module/library');

或在您的情况下: $this->load->library('categories/categories_class');

我之前尝试过排除模块文件夹名称,但从未让它起作用。

  

控制器可以作为其他控制器的类变量加载   使用$this->load->module(’module/controller’);或简单地使用   $this->load->module(’module’);如果控制器名称匹配   模块名称。

     

任何加载的模块控制器都可以像库一样使用,即:   $this->controller->method(),但它可以访问自己的模型和   图书馆独立于来电者。

答案 1 :(得分:0)

我对此错误行为有另一个观点,这让我花了大约3个小时,实际上我总是在Codeigniter上的自定义库中使用大写和小写的组合。

对于Codeigniter HMVC的wiredesigz,请记住库加载器行为与CI本身相同, 始终使用库类名称的小写 而不是实际的类名(可能组合)大写和小写)