系統啟動時自動載入的資源:Libraries、Helpers、Models、Config、Language 等,無需在控制器手動 $this->load->library()。
$autoload['libraries'] = ['database', 'session', 'email']; $autoload['helper'] = ['url', 'form', 'my_app_helper']; $autoload['model'] = ['User_model', 'Log_model']; $autoload['config'] = ['app_config']; $autoload['language'] = ['common'];
load 程式碼$autoload['libraries'] = ['database', 'session']; // 極精簡
// core/MY_Controller.php
class MY_Controller extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->helper('url'); // 幾乎每頁都用
}
}
// 後台基底
class Admin_Controller extends MY_Controller {
public function __construct() {
parent::__construct();
$this->load->library('acl'); // 僅後台需權限
$this->load->model('admin/User_model');
}
}
// API 基底
class Api_Controller extends MY_Controller {
public function __construct() {
parent::__construct();
$this->load->library('jwt_auth');
$this->output->set_content_type('application/json');
}
}
// composer.json
{
"autoload": {
"psr-4": {
"App\\": "application/",
"Modules\\": "application/modules/"
}
}
}
服務類別改為獨立類別,透過建構子注入依賴,完全脫離 CI Loader,可單獨測試、跨框架復用。
autoload.php 適合極小型專案或快速原型。中大型專案建議:核心服務自動載入 + 模組基底控制器按需載入 + 領域邏輯用 Composer PSR-4 獨立類別。