首页MVC 核心WebCore 控制器执行
WebCore 控制器执行
__execController 加载并实例化控制器,__execActioner 调用动作方法
本页内容
  1. __execController 流程
  2. __bindBehavior 行为处理
  3. __execActioner

__execController 流程

#步骤说明
1计算文件路径{@APP}/{模块}/Controller/{控制器}Controller.class.php
2loadfile加载失败抛 Exception("控制器文件...加载异常")
3实例化new \App\{模块}\Controller\{控制器}Controller()
4beforeBehavior存在该方法则调用并交给 __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 · 返回首页