CodeIgniter4 扩展控制器

2020-08-17 17:59 更新

CodeIgniter的核心Controller不应更改,但可以在app / Controllers / BaseController.php中为您提供默认的类扩展 。您制作的任何新控制器都应扩展BaseController以利用预加载的组件和您提供的任何其他功能:

<?php namespace App\Controllers;


use CodeIgniter\Controller;


class Home extends BaseController {


}

预加载组件

基本控制器是在每次项目运行时加载打算使用的任何帮助程序,模型,库,服务等的好地方。助手应添加到预定义的$helpers数组中。例如,如果您希望通用的HTML和文本帮助器:

protected $helpers = ['html', 'text'];

任何其他要加载的组件或要处理的数据都应添加到构造函数中initController()。例如,如果您的项目大量使用会话库,则可能要在此处启动它:

public function initController(...)
{
        // Do Not Edit This Line
        parent::initController($request, $response, $logger);


        $this->session = \Config\Services::session();
}

附加方法

基本控制器不可路由(系统配置会将其路由到“ 404页面未找到”)。作为一种附加的安全措施,应将您创建的所有新方法声明为protected或,private并且只能通过您创建的扩展控制器来访问BaseController

其他选择

您可能会发现您需要多个基本控制器。您可以创建新的基本控制器,只要您制造的任何其他控制器扩展了正确的基本控制器即可。例如,如果您的项目具有涉及的公共界面和简单的管理门户,则您可能希望扩展BaseController到公共控制器并AdminController使用任何管理控制器。

如果您不想使用基本控制器,则可以通过让控制器扩展系统控制器来绕过它:

class Home extends \CodeIgniter\Controller
{


}
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号