二十五、逐行阅读Yii2.0.43源码_Yii框架文件yii\base\Application.php(3)

本文详细解析了Yii框架的getUniqueId方法,用于获取模块的唯一标识;setBasePath方法,设置应用的基础路径和@app别名;run方法,涵盖从请求处理前到结束的完整流程;以及handleRequest抽象方法,它负责处理请求并返回响应。通过这些方法,深入理解Yii框架的应用运行机制。
摘要由CSDN通过智能技术生成

一、getUniqueId方法,返回唯一的标识模块的id

    // 返回唯一的标识模块的id
    public function getUniqueId()
    {
        return '';
    }

二、setBasePath方法,设置应用根目录和@app别名

    /**
     * 设置应用根目录和@app别名
     */
    public function setBasePath($path)
    {
        parent::setBasePath($path);
        Yii::setAlias('@app', $this->getBasePath());
    }

三、run方法,运行应用的入口

1.请求处理前
2.请求处理中
3.请求处理后
4.发送响应
5.请求结束,返回退出状态码

    /**
     * 运行应用的入口
     * 1.请求处理前
     * 2.请求处理中
     * 3.请求处理后
     * 4.发送响应
     * 5.请求结束,返回退出状态码
     */
    public function run()
    {
        try {

            //请求处理前
            $this->state = self::STATE_BEFORE_REQUEST;
            $this->trigger(self::EVENT_BEFORE_REQUEST);

            //请求处理中
            $this->state = self::STATE_HANDLING_REQUEST;
            $response = $this->handleRequest($this->getRequest());

            //请求处理后
            $this->state = self::STATE_AFTER_REQUEST;
            $this->trigger(self::EVENT_AFTER_REQUEST);

            //发送响应
            $this->state = self::STATE_SENDING_RESPONSE;
            $response->send();

            //请求结束,返回退出状态码
            $this->state = self::STATE_END;

            return $response->exitStatus;
        } catch (ExitException $e) {
            //响应异常信息,返回退出状态码
            $this->end($e->statusCode, isset($response) ? $response : null);
            return $e->statusCode;
        }
    }

 四、handleRequest方法,这个方法是一个抽象方法,需要返回一个Response对象

    /**
     * 处理请求,返回一个Response实例
     */
    abstract public function handleRequest($request);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值