ThinkPHP 3.2.2 引入插件控制器機制,允許通過 URL 參數動態調用模組下的插件控制器,為系統擴展提供了更靈活的入口。本文詳細說明其配置、路由規則與使用示例。
當 URL 中攜帶插件控制器變量(默認參數名 addon,可通過 VAR_ADDON 配置)時,框架將自動定位到對應插件目錄下的控制器,而非常規模組控制器。
https://serverName/Home/info/index/addon/SystemInfo
上述請求將調用 Home/Addon/SystemInfo/Controller/InfoController.class.php,而非常規的 Home/Controller/InfoController.class.php。
namespace Home\Addon\SystemInfo\Controller;
class InfoController extends Think\Controller {
public function index() {
echo 'Addon SystemInfo';
}
}
訪問上述 URL 將輸出 Addon SystemInfo。
若插件目錄非 Addon(如 Plugin),需在配置文件中設置:
'VAR_ADDON' => 'plugin'
對應 URL 變為:
https://serverName/Home/info/index/plugin/SystemInfo
插件控制器機制為模組內部功能解耦提供了新思路,適合實現可插拔的業務擴展。