1

我需要使用模块化扩展从我的模块中加载一个库

我的结构是这样的

模块/

模块/类别/库

  • categories_class.php

模块/类别/控制器/

  • 类别.php

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

有人帮我吗?

4

2 回答 2

7

我看到两个问题..

问题 1

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

按照下面的例子

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

/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(),但它可以独立于调用者访问自己的模型和库。

于 2012-05-11T13:09:05.883 回答
0

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

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

于 2018-01-19T08:27:02.990 回答