我正在创建一个在 codeigniter 中具有 HMVC 结构的应用程序,并且我还需要以 API 为中心的应用程序,因此我将https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc用于 HMVC 和Phil Sturgeon的 Rest_Controller ,现在一切正常,但问题是模块中的每个控制器我必须添加静态路径
require APPPATH.'modules/modulename/libraries/REST_Controller.php';
我想让这个路径动态化,或者为模块库文件夹中的每个模块自动加载库,在 module/config/autoload.php 中添加库名称对我不起作用,因为我认为原因是应用程序的代码流,首先应用程序流到控制器,它到达我扩展 REST_Controller 的类并给出错误,无法加载 REST_Controller 类
注意:如果我将 Rest_Controller.php 和 Format.php 放在 application/libraries/ 文件夹中,一切正常,但我希望这是模块化的,并使模块安静
如何从模块/库中专门加载库如何使其正确模块化,以便模块中应该有一个完整的 codeigniter 实例,它应该可以自由工作,包括从主应用程序加载的文件。
我的文件夹结构如下
应用程序
- - 模块
- - - - 模块名 -
- - - - - 控制器
- - - - - 库
- - - - - - 配置
- - - - - 模型
- - - - - - 视图
我的 Rest_Controller 类在 application/modules/module_name/libraries/Rest_Controller.php
abstract class REST_Controller extends MX_Controller
我的控制器类在 application/modules/module_name/controllers/User.php
require APPPATH.'modules/modulename/libraries/REST_Controller.php';
class User extends REST_Controller
{
这工作正常,但如果我从顶部删除 require 行,它不起作用,即使我将库名称添加到 /modulename/config/autoload.php 中的 autoload.php
它不起作用我的 autoload.php /application/modules/modulename/config/autoload.php
<?phpif ( ! defined('BASEPATH')) exit('No direct script access allowed');
$autoload['packages'] = array();
$autoload['libraries'] = array('database', 'session','modulename/REST_Controller');
$autoload['helper'] = array('url', 'file');
$autoload['config'] = array();
$autoload['language'] = array();
$autoload['model'] = array();
并且我的 application/config/autoload.php 中的 autoload.php 是空的,意味着没有提到自动加载