我正在创建一个在codeigniter中具有HMVC结构的应用程序,我也需要API中心应用程序,所以我使用https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc用于HMVC和Phil Sturgeon的Rest_Controller,现在一切正常,但问题是模块中的每个控制器我必须添加静态路径
require APPPATH.'modules/modulename/libraries/REST_Controller.php';
我想让这个路径动态化,或者为模块的库文件夹中的每个模块自动加载库,在模块/ config / autoload.php中添加库名称对我来说不起作用,因为我认为原因是应用程序的代码流程,首先应用程序流进入控制器,它到我的类扩展REST_Controller并给出错误,无法加载REST_Controller类
注意:如果我将Rest_Controller.php和Format.php放在application / libraries /文件夹中,一切正常,但我希望这是模块化的,并使模块更加安静
如何从模块/库中专门加载库如何使其正确模块化,以便模块中应该有一个完整的codeigniter实例,它应该可以自由工作,包括从主应用程序加载的文件 .
My folder structure is as follows
application - - modules - - - - modulename - - - - - - controller - - - - - - libraries - - - - - - config - - - - - - models - - - - - - views
我在应用程序/ modules / module_name / libraries / Rest_Controller.php中的Rest_Controller类
abstract class REST_Controller extends MX_Controller
我的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为空,表示没有提到自动加载
1 回答
首先 - 目前尚不清楚,但您的结构应如下所示:
然后用
在
modulename.php
控制器中,首先检查它是否正常工作,并且正确定义了所有路径 .如果它有效,那么首先评论该行 .
然后在
modulename/config
文件夹中的autoload.php
文件中设置:然后再试一次 - 注意课名前没有任何内容 .
这肯定会起作用,因为我已经尝试过了 - 如果它没有,你似乎已经错误地修改了你的路线或者一直在其他地方播放文件(可能是在自定义控制器中过度使用的东西?)