codecamp

CodeIgniter4 扩展控制器

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
{


}
CodeIgniter4 事件
CodeIgniter4 鉴权
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }