Codeigniter 3自动加载控制器

Sas*_*asa 8 php codeigniter autoload codeigniter-restserver

我在codeigniter中使用REST服务器,使用方法是在我的应用程序中所有控制器中我必须在开始时写这行:

require APPPATH . '/libraries/REST_Controller.php';
Run Code Online (Sandbox Code Playgroud)

有谁知道如何自动加载这个REST_Controller并避免在我的所有控制器中使用这一行?我不想使用require.

预先感谢

Kev*_*Yan 6

您可以通过Codeigniter的自动加载配置来实现。

编辑autoload.php目录中的项目YourProject/application/config/

$autoload['libraries'] = array('REST_Controller');
Run Code Online (Sandbox Code Playgroud)

在控制器中,可以通过访问此库类$this->rest_controller

顺便说一句:Rest_Controllers是一个库文件,所以我认为后缀名不是Controller一个好名字。

编辑

通过您的评论,我知道您实际上是指所有控制器都从扩展REST_Controller,并且您不想在每个控制器文件的顶部都要求它。

解:

  1. 移动REST_Controller.php到目录YourProject/application/core/
  2. YourProject/application/config/config.php第119行更改$config['subclass_prefix'] = 'MY_';$config['subclass_prefix'] = 'REST_';

然后CodeigniterREST_Controller自动加载。

但是subclass_prefix配置具有全局性,并且您需要更改的位置REST_Conttoller.php,因此要进行最小的更改,我认为最好的方法是MY_Controller在目录中创建类,./application/core/并要求REST_Controller在此新文件的底部。当CI负载MY_controller自动REST_Controller将太需要。

注意: MY_Controller需要从CI_Controller