首页 > 技术文章 > ThinkPHP之框架基础

SharkJiao 2020-12-23 17:15 原文

TP5 框架基础

目录结构

1.project 应用部署目录
2.├─application 应用目录(可设置)
3.│ ├─common 公共模块目录(可更改)
4.│ ├─index 模块目录(可更改)
5.│ │ ├─config.php 模块配置文件
6.│ │ ├─common.php 模块函数文件
7.│ │ ├─controller 控制器目录
8.│ │ ├─model 模型目录
9.│ │ ├─view 视图目录
10.│ │ └─ ... 更多类库目录
11.│ ├─command.php 命令行工具配置文件
12.│ ├─common.php 应用公共(函数)文件
13.│ ├─config.php 应用(公共)配置文件
14.│ ├─database.php 数据库配置文件
15.│ ├─tags.php 应用行为扩展定义文件
16.│ └─route.php 路由配置文件
17.├─extend 扩展类库目录(可定义)
18.├─public WEB 部署目录(对外访问目录)
19.│ ├─static 静态资源存放目录(css,js,image)
20.│ ├─index.php 应用入口文件
21.│ ├─router.php 快速测试文件
22.│ └─.htaccess 用于 apache 的重写
23.├─runtime 应用的运行时目录(可写,可设置)
24.├─vendor 第三方类库目录(Composer)
25.├─thinkphp 框架系统目录
26.│ ├─lang 语言包目录
27.│ ├─library 框架核心类库目录
28.│ │ ├─think Think 类库包目录
29.│ │ └─traits 系统 Traits 目录
30.│ ├─tpl 系统模板目录
31.│ ├─.htaccess 用于 apache 的重写
32.│ ├─.travis.yml CI 定义文件
33.│ ├─base.php 基础定义文件
34.│ ├─composer.json composer 定义文件
35.│ ├─console.php 控制台入口文件
36.│ ├─convention.php 惯例配置文件
37.│ ├─helper.php 助手函数文件(可选)
38.│ ├─LICENSE.txt 授权说明文件
39.│ ├─phpunit.xml 单元测试配置文件
40.│ ├─README.md README 文件
41.│ └─start.php 框架引导文件
42.├─build.php 自动生成定义文件(参考)
43.├─composer.json composer 定义文件
44.├─LICENSE.txt 授权说明文件
45.├─README.md README 文件
46.├─think 命令行入口文件

配置文件

三个层级的配置文件

  • 框架主配置文件

    • thinkphp/convention.php 惯例配置文件
  • 应用公共配置文件

    • application/config.php 应用(公共)配置文件
    • application/database.php 数据库配置文件
  • 模块配置文件

    • application/模块目录/config.php

其他说明

  • 配置文件格式

    • return array(键值对);
  • 配置加载顺序

    • 框架主配置文件 -> 应用公共配置文件 -> 模块配置文件
  • 配置文件生效顺序

    • 后加载的配置项会覆盖之前配置项
    • 后加载的配置文件生效
  • 手动配置

    • 手动进行配置,一般不要修改框架本身的主配置文件
    • 而是在应用或者模块配置文件中进行配置

函数文件

  • 框架助手函数文件

    • thinkphp/helper.php
    • 一般不建议直接修改thinkphp/helper.php
  • 应用公共函数文件

    • application/common.php
  • 模块函数文件

    • application/模块目录/common.php

开发规范

PSR-1 基本代码规范

PSR-2 代码风格规范

PSR2-1 补充文档

PSR-3 日志接口规范

PSR-4 自动载入

请求的生命周期

  • 概述

    • 框架的生命周期,也就是请求的执行流程
  • 执行流程

    • 请求开始
    • 入口文件 index.php
    • 底层流程
      • 引导文件 start.php
      • 注册自动加载
      • 注册错误和异常机制
      • 应用初始化
      • URL访问检测
      • 路由检测
      • 请求分发
    • 控制器方法
      • 视图(响应输出)
      • 模型
    • 结束

推荐阅读