首页›MVC 核心›WebCore 控制器执行
WebCore 控制器执行
__execController 加载并实例化控制器,__execActioner 调用动作方法
本页内容
- __execController 流程
- __bindBehavior 行为处理
- __execActioner
__execController 流程
| # | 步骤 | 说明 |
|---|---|---|
| 1 | 计算文件路径 | {@APP}/{模块}/Controller/{控制器}Controller.class.php |
| 2 | loadfile | 加载失败抛 Exception("控制器文件...加载异常") |
| 3 | 实例化 | new \App\{模块}\Controller\{控制器}Controller() |
| 4 | beforeBehavior | 存在该方法则调用并交给 __bindBehavior 处理 |
| 5 | 类不存在 | 抛 Exception("控制器[...] 不存在") |
__bindBehavior 行为处理
| 返回值 | 行为 |
|---|---|
| 数组 | opts 装配 {format, config};format 非空则设置 $__format;config 数组逐个 Helper::setConfig |
| 字符串(非数组非空) | 直接 new Code200 + setStream + flush 输出后终止 |
| 空/null | 不做处理 |
__execActioner
判断控制器是否存在动作方法:存在则 $this->__controller_class->$action($params);不存在则走 __call($action, [$params])(WebController 的 __call 抛"找不到执行方法"异常)。
beforeBehavior 典型用法
namespace App\Admin\Controller;
class Behavior extends \Kuoqi\Controller {
public function beforeBehavior() {
// 注入 UI 资源 + 设置后台 layout
$this->assign("__ui_layout", $this->ui->layout("admin")->toLinks());
$this->layout("/Admin/Layout/Layout");
return parent::beforeBehavior();
}
}
KuoqiPHP v1.05 · 离线静态文档 · 界面基于 KuoqiUI ·
返回首页