thinkphp5框架笔记

阅读次数: 442

  • A+
所属分类:PHP PHP 建站 语言学习

之前没怎么了解过,但用过TP3.2.网上查了下说是区别很大,特此记录下。

流程:

1.入口文件默认是 public目录下的index.php


// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架引导文件

require __DIR__ . '/../thinkphp/start.php';

2.加载 thinkphp/base.php

定义版本号,定义常用的常量,加载convention.php配置文件,加载自动加载类,加入了 composer模式

3.有了自动加载类后就开始执行 APP::run()

4.初始话网络请求对象 Request::instance();

5.初始话配置文件,同时加载模块配置 application/config.php

6.加载额外的应用配置 (如果有配置的话)app_status

7.添加默认钩子(tags.php)

return [
    // 应用初始化
    'app_init'     => [],
    // 应用开始
    'app_begin'    => [],
    // 模块初始化
    'module_init'  => [],
    // 操作开始执行
    'action_begin' => [],
    // 视图内容过滤
    'view_filter'  => [],
    // 日志写入
    'log_write'    => [],
    // 应用结束
    'app_end'      => [],
];

8.加载公共配置文件 默认是 application/common.php 可以写自己的公共方法(标准)

9.加载语言包

10.判断是否有自定义调度内容(app_dispatch 的钩子)如果有则执行,默认是空的

11.递归生成路由表

12.执行 钩子(Hook::listen('app_begin',$dispatch); // $dispatch是当前的路由数组 依次执行

13.检查缓存

14.开始创建 控制器对象并执行,返回 Response对象

15.执行 对象 send()方法 // echo 输出内容

还有很多细节没讲出来,先大概记录下

前端视图输出的流程没开始看,因为大部分用的都是接口。

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: