前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >thinkphp框架解析1 -- 只是一个开始

thinkphp框架解析1 -- 只是一个开始

作者头像
老高的技术博客
发布2022-12-27 21:29:11
1840
发布2022-12-27 21:29:11
举报
文章被收录于专栏:老高的技术博客

接上一篇起源

ThinkPHP/Library/Think/下找到App.class.php,他就是应用程序类,他会见证整个应用从创建到消亡的整个过程。

上次我们分析到系统执行App::run(),下面开始分析此方法:

代码语言:javascript
复制
static public function run() {
    // 应用初始化标签
    Hook::listen('app_init');
    App::init();
    // 应用开始标签
    Hook::listen('app_begin');
    // Session初始化
    if(!IS_CLI){
        session(C('SESSION_OPTIONS'));
    }
    // 记录应用初始化时间
    G('initTime');
    App::exec();
    // 应用结束标签
    Hook::listen('app_end');
    return ;
}

看起来很简单嘛!

  1. 添加APP初始化钩子
  2. 执行APP初始化
  3. 判断如果是cli执行,载入SESSION_OPTIONS配置
  4. 记录初始化时间
  5. 执行APP
  6. 添加APP结束钩子

其实你只看到了##The tip of the iceberg##,APP的初始化也是一个比较复杂的过程。

下面我们就铺开各个执行过程,看看到底发生了什么。

首先,系统调用了Hook::listen方法,事件名为##app_init##。关于更多的Hook使用方法,可以参考老高的这篇文章

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档