thinkphp5学习笔记(一)

thinkphp5学习

目录                  命名都是小写字母  或者  小写字母+下划线  eg: user/user_type

类文件(驼峰法)        命名空间与文件真实路径完全一致   app\index\controller
                    类名与文件名保持一致(首字母大写) User.php中只有User类

其他文件            匈牙利命名法  小写字母/小写字母+下划线  eg: list.php/list_user.php

函数              匈牙利命名法(小写字母+下划线)  eg:get_user_type()

类的方法            驼峰法(首字母小写)  eg:getName()

类的属性            驼峰法(首字母小写)  eg:userType

魔术方法            双下划线开头+驼峰命名法  eg:__set()

常量              匈牙利命名法  大写字母+下划线  eg:APP_PATH

配置参数            匈牙利命名法  小写字母+下划线  eg:url_route_on

数据表             匈牙利命名法  小写字母+下划线  eg:tp5_staff

字段表             匈牙利命名法  小写字母+下划线,前缀用表名  eg:staff_name

模型

1.模型通常对应整个应用,因此模型通常在应用(application)目录下创建

2.模型返回的数据,通常是数组 或 字符串

3.模型支持分层操作,例如将模型层分为逻辑层/服务层/事件层。

视图

1.模板目录可以动态设置

TP5的生命周期

入口文件 -> 引导文件 -> 注册自动加载 -> 注册错误和异常机制 -> 应用初始化 -> 

url访问检测 -> 路由检测 -> 分发请求 -> 响应输出 -> 应用结束 

一、入口文件

1.任务:定义常量,加载引导文件,不要放任何业务处理代码

二、引导文件

1.thinkphp/start.php

2.执行: 加载常量 -> 加载环境变量 -> 注册自动加载 -> 注册错误与异常 -> 加载惯例配置 -> 执行应用

3.base.php 定义了大量的变量 

三、注册自动加载

1.类方法: Loader::register();

2.作用:将所有符合规范的类库(包括Composer依赖加载的第三方类库)自动加载;

3.执行流程:

注册自动加载方法:\think\Loader::autoload  -> 注册系统命名空间 -> 加载类库映射文件 -> 

注册Composer自动加载 -> 注册extend扩展目录

四、注册错误和异常机制

执行Error::register()注册错误和异常处理机制

有三部分组成

1.应用关闭方法:think\Error::appShutdown

2.错误处理方法:think\Error::appError

3.异常处理方法:think\Error::appException

五、应用初始化

严格意义上,前面的内容都可算做应用初始化部分:

加载公共配置 -> 加载公共扩展配置 -> 加载应用状态配置 -> 加载别名定义 -> 加载行为定义 -> 

加载公共函数文件 -> 注册应用命名空间  -> 加载扩展函数文件 -> 设置默认时区 -> 加载系统语言包

六、URL访问检测

URL必须是PATH_INFO格式才允许继续运行

PATH_INFO兼容格式

七、路由检测

1.如果开启了url_route_on参数,则首先进行URL路由检测

2.一旦检测到匹配的路由,根据路由规则会注册到响应的URL调度

3.TP5支持的路由规则:

  路由到模块/控制器/操作  这是默认路由模式,如果关闭路由或路由检测无效则执行该模式

  路由到外部重定向地址

  路由到控制器方法

  路由到闭包函数

  路由到类的方法

八、分发请求

1.将用户请求分发到对应的路由地址,完成应用的业务逻辑并返回数据

2.统一使用return返回数据,不要用echo直接输出

3.如非必要,请不要使用exit或者die中断执行

4.分发请求支持TP5的五种路由地址模式

九、响应输出

1.控制器正常返回的数据通常是:字符串或数组格式

2.统一使用return返回数据,而不是直接输出,这样可以自动调用Response::send()方法

将最终的返回数据输出到页面或客户端,并自动转换成default_return_type参数配置的格式(XML,JSON等)。

十、应用结束

1.响应输出完成后,应用生命周期基本结束,可以写日志报告

2.日志包括两部分:用户调试输出和系统自动生成

3.日志在应用结束后,自动写入。

你可能感兴趣的:(thinkphp5学习笔记(一))