CodeIgniter4 擴展控制器

2020-08-17 17:59 更新

CodeIgniter的核心Controller不應(yīng)更改,但可以在app / Controllers / BaseController.php中為您提供默認的類擴展 。您制作的任何新控制器都應(yīng)擴展BaseController以利用預(yù)加載的組件和您提供的任何其他功能:

<?php namespace App\Controllers;


use CodeIgniter\Controller;


class Home extends BaseController {


}

預(yù)加載組件

基本控制器是在每次項目運行時加載打算使用的任何幫助程序,模型,庫,服務(wù)等的好地方。助手應(yīng)添加到預(yù)定義的$helpers數(shù)組中。例如,如果您希望通用的HTML和文本幫助器:

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

任何其他要加載的組件或要處理的數(shù)據(jù)都應(yīng)添加到構(gòu)造函數(shù)中initController()。例如,如果您的項目大量使用會話庫,則可能要在此處啟動它:

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


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

附加方法

基本控制器不可路由(系統(tǒng)配置會將其路由到“ 404頁面未找到”)。作為一種附加的安全措施,應(yīng)將您創(chuàng)建的所有新方法聲明為protected或,private并且只能通過您創(chuàng)建的擴展控制器來訪問BaseController。

其他選擇

您可能會發(fā)現(xiàn)您需要多個基本控制器。您可以創(chuàng)建新的基本控制器,只要您制造的任何其他控制器擴展了正確的基本控制器即可。例如,如果您的項目具有涉及的公共界面和簡單的管理門戶,則您可能希望擴展BaseController到公共控制器并AdminController使用任何管理控制器。

如果您不想使用基本控制器,則可以通過讓控制器擴展系統(tǒng)控制器來繞過它:

class Home extends \CodeIgniter\Controller
{


}
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號