logo资料库

Think PHP5.0完全开发手册Word版本.docx

第1页 / 共589页
第2页 / 共589页
第3页 / 共589页
第4页 / 共589页
第5页 / 共589页
第6页 / 共589页
第7页 / 共589页
第8页 / 共589页
资料共589页,剩余部分请下载后查看
序言
手册阅读须知:本手册仅针对ThinkPHP5.0版本(使用左右键()翻页阅读)
支持ThinkPHP5的用户请到
版权申明
捐赠我们
推荐阅读(官方出品)
基础
安装ThinkPHP
一、官网下载安装
二、Composer安装
[ 码云 ]
[ Coding ]
开发规范
命名规范
目录和文件
函数和类、属性命名
常量和配置
数据表和字段
应用类库命名空间规范
目录结构
架构
架构总览
入口文件
应用
模块
控制器
操作
模型
视图
驱动
行为
命名空间
生命周期
1、入口文件
2、引导文件
3、注册自动加载
4、注册错误和异常机制
5、应用初始化
6、URL访问检测
7、路由检测
8、分发请求
模块/控制器/操作
控制器方法
外部重定向
闭包函数
类的方法
9、响应输出
10、应用结束
入口文件
入口文件定义
URL访问
URL设计
URL大小写
隐藏入口文件
模块设计
目录结构
模块类库
模块和控制器隐藏
单一模块
命名空间
命名空间
根命名空间(类库包)
自动注册
手动注册
应用类库包
命名空间别名
自动加载
概述
自动加载
类库映射
类库导入
Composer自动加载
Traits引入
冲突的解决
API友好
数据输出
错误调试
配置
配置目录
配置目录
配置格式
PHP数组定义
其他配置格式支持
二级配置
配置加载
惯例配置
应用配置
扩展配置
场景配置
模块配置
加载配置文件
读取配置
读取配置参数
动态配置
设置配置参数
独立配置
独立配置文件
自动读取扩展配置
配置作用域
作用域
环境变量配置
环境变量配置
路由
概述
路由模式
一、普通模式
二、混合模式
三、强制模式
路由定义
注册路由规则
动态注册
路由表达式
规则表达式
可选定义
完全匹配
额外参数
批量注册
批量注册
定义路由配置文件
变量规则
变量规则
全局变量规则
局部变量规则
完整URL规则
组合变量
路由参数
路由参数
请求类型
URL后缀
域名检测
HTTPS检测
前置行为检测
后置行为执行
Callback检测
合并额外参数
配置文件中添加路由参数
路由绑定模型()
缓存路由请求
路由地址
路由地址定义
路由到模块/控制器/操作
额外参数
路由到操作方法
路由到类的方法
路由到重定向地址
资源路由
资源路由
资源嵌套
快捷路由
路由别名
操作方法黑白名单()
路由分组
路由分组
MISS路由
全局MISS路由
分组MISS路由
闭包支持
闭包定义
参数传递
路由绑定
绑定到模块/控制器/操作
绑定到命名空间
绑定到类
入口文件绑定
常量定义
自动入口绑定
绑定模型
域名路由
动态注册
泛域名部署
配置定义方式
域名绑定地址
绑定到命名空间
绑定路由规则
URL生成
地址表达式和参数
使用模块/控制器/操作生成
使用控制器的方法生成
使用类的方法生成
直接使用路由地址
URL后缀
域名生成
自动生成域名
指定域名
生成锚点
隐藏或者加上入口文件
控制器
控制器定义
控制器定义
渲染输出
输出转换
控制器初始化
前置操作
跳转和重定向
页面跳转
重定向
空操作
空控制器
多级控制器
多级控制器
分层控制器
访问控制器
分层控制器
Rest控制器
Rest控制器
RESTFul方法定义
RESTFul 输出
使用Rest类提供的 response 方法
使用类
自动定位控制器
资源控制器
请求
请求信息
获取URL信息
设置/获取 模块/控制器/操作名称
获取请求参数
获取路由和调度信息
设置请求信息
输入变量
概述
检测变量是否设置
变量获取
获取变量
获取变量
获取变量
获取变量
获取变量
获取变量
获取变量
获取变量
变量过滤
获取部分变量
排除部分变量
变量修饰符
更改变量
请求类型
获取请求类型
请求伪装
请求类型伪装
HTTP头信息
伪静态
方法注入
属性注入
参数绑定
操作方法参数绑定
按名称绑定
按顺序绑定
架构方法参数绑定(V5.0.1)
依赖注入
自动注入请求对象
架构方法注入
操作方法注入
架构方法注入
操作方法注入
请求缓存
路由参数
动态设置
数据库
连接数据库
一、配置文件定义
连接参数
二、方法配置
三、模型类定义
配置参数参考
基本使用
查询构造器
查询数据
基本查询
主从查询
助手函数
使用Query对象或闭包查询
值和列查询
数据集分批处理
添加数据
添加一条数据
添加多条数据
助手函数
更新数据
更新数据表中的数据
更新某个字段的值:
自增或自减一个字段的值
延迟更新
助手函数
删除数据
删除数据表中的数据
助手函数
方法
混合查询
方法
查询语法
EQ :等于(=)
NEQ: 不等于(<>)
GT:大于(>)
EGT:大于等于(>=)
LT:小于(<)
ELT: 小于等于(<=)
[NOT] LIKE: 同sql的LIKE
[NOT] BETWEEN :同sql的[not] between
[NOT] IN: 同sql的[not] in
[NOT] NULL :
EXP:表达式
链式操作
where
表达式查询
数组条件
普通查询
表达式查询
字符串条件
table
用法
alias
field
用于查询
指定字段
使用SQL函数
使用数组参数
获取所有字段
字段排除
用于写入
order
limit
限制结果数量
分页查询
page
group
having
join
join
condition
union
distinct
lock
cache
缓存自动更新
comment
fetchSql
force
bind
partition
strict
failException
sequence
聚合查询
时间查询
时间比较
使用方法
使用方法
时间表达式
高级查询
快捷查询
区间查询
批量查询
闭包查询
使用Query对象查询
混合查询
字符串条件查询
视图查询
子查询
4、使用闭包构造子查询
原生查询
参数绑定
查询事件
查询事件(V5.0.4+)
注册事件
事务操作
监听SQL
存储过程
数据集
分布式数据库
模型
定义
模型定义
设置数据表
模型调用
模型初始化
模型初始化
新增
添加一条数据
获取自增ID
添加多条数据
静态方法
助手函数
更新
查找并更新
直接更新数据
批量更新数据
通过数据库类更新数据
静态方法
闭包更新
自动识别
删除
删除当前模型
根据主键删除
条件删除
查询
获取单个数据
获取多个数据
自定义数据集对象
获取某个字段或者某个列的值
动态查询
通过Query类查询
数据分批处理
查询缓存
主库读取
聚合
获取器
获取器
获取原始数据
修改器
修改器
批量修改
时间戳
只读字段
软删除
软删除
类型转换
数据完成
查询范围
全局查询范围
模型分层
数组访问和转换
数组访问
转换为数组
JSON序列化
追加关联模型的属性(V5.0.4+)
事件
模型事件
关联
一对一关联
定义
关联查找
关联新增
关联更新
定义相对的关联
一对多关联
一对多关联
关联定义
关联查询
根据关联条件查询
关联新增
远程一对多
关联定义
关联查询
多对多关联
多对多关联
关联查询
关联新增
定义相对的关联
多态关联
多态关联定义
获取多态关联
自定义多态关联的类型字段
动态属性
关联预载入
关联预载入
延迟预载入()
关联统计
聚合模型
聚合模型
think_user
think_profile
视图
视图实例化
助手函数
模板引擎
内置模板引擎
配置文件
视图根目录
调用engine方法初始化
使用第三方模板引擎
模板赋值
模板赋值
方法
助手函数
方法
模板渲染
模板渲染
自定义模板路径
渲染完整模板
渲染内容
输出替换
模板输出替换
模板
模板定位
模板文件定义
模板渲染规则
模板标签
普通标签
标签库标签
变量输出
系统变量
系统变量输出
常量输出
配置输出
语言变量
请求参数
使用函数
使用默认值
使用运算符
三元运算
原样输出
总之,所有可能和内置模板引擎的解析规则冲突的地方都可以使用标签处理。
单行注释
多行注释
模板布局
第一种方式:全局配置方式
第二种方式:模板标签方式
第三种方式:使用layout控制模板布局
模板继承
包含文件
使用模版表达式
使用模版文件
传入参数
标签库
导入标签库
内置标签
标签库预加载
内置标签
循环输出标签
VOLIST标签
FOREACH标签
FOR标签
比较标签
条件判断
SWITCH标签
IF标签
范围判断
IN和NOTIN
BETWEEN 和 NOTBETWEEN
RANGE
PRESENT NOTPRESENT标签
EMPTY NOTEMPTY 标签
DEFINED 标签
资源文件加载
标签嵌套
原生PHP
使用php标签
使用原生php代码
定义标签
ASSIGN标签
DEFINE标签
介绍
日志初始化
日志驱动
日志驱动
驱动
驱动
其他驱动
关闭日志
日志写入
日志写入
手动记录
日志级别
单文件日志
日志自动清理
独立日志
日志清空
写入授权
错误和调试
调试模式
异常处理
默认异常处理
异常处理接管
部署模式异常
异常捕获
抛出异常
手动抛出异常
抛出 HTTP 异常
Trace调试
开启Trace调试
页面Trace显示
浏览器Trace显示
变量调试
性能调试
助手函数
SQL调试
查看SQL记录
监听SQL
调试执行的SQL语句
远程调试
Socket调试
安装Chrome插件
参数
404页面
验证
验证器
概述
独立验证
验证器
验证规则
设置规则
规则定义
属性定义
验证数据
闭包函数验证
自定义验证规则
设置字段信息
错误信息
使用默认的错误提示信息
验证规则和提示信息分开定义
验证规则和提示信息一起定义
使用多语言
验证场景
验证场景
控制器验证
模型验证
内置规则
格式验证类
长度和区间验证类
字段比较类
filter验证
正则验证
上传验证
行为验证
其它验证
静态调用
表单令牌
安全
输入安全
数据库安全
上传安全
其它安全建议
其它的一些安全建议:
杂项
缓存
概述
设置
使用
设置缓存
缓存自增
缓存自减
获取缓存
删除缓存
获取并删除缓存
清空缓存
不存在则写入缓存数据后返回()
助手函数
缓存标签
同时使用多个缓存类型
Session
概述
Session初始化
设置参数
基础用法
二级数组
助手函数
Session驱动
Cookie
概述
基本操作
初始化
设置
清空
多语言
开启和加载语言包
语言变量定义
语言文件定义
变量传入支持
分页
分页实现
传入总记录数()
分页后数据处理 ()
简洁分页
分页参数
上传
上传文件
多文件上传
上传验证
上传规则
获取文件hash散列值
返回对象
验证码
验证码的简单用法
验证码的自定义用法
验证码的配置参数
图像处理
安装扩展
图像操作
打开图像文件
获取图像信息
裁剪图片
生成缩略图
图像翻转
图像旋转
图像保存参数
添加水印
文字水印参数
文件处理
单元测试
单元测试
添加单元测试文件
扩展
函数
扩展系统函数
添加应用函数
类库
行为
概述
行为标签位
添加行为标签位
行为定义
行为绑定
闭包支持
直接执行行为
驱动
Composer包
Composer安装
Time
时间戳操作
数据库迁移工具
数据库迁移工具
使用实例
Workerman
Workerman
MongoDb
SAE
SAE介绍
安装SAE扩展
数据库配置
驱动配置
关于标签库开发
命令行
自动生成目录结构
生成规则定义
命令行自动生成
添加自动生成代码
创建类库文件
快速生成控制器类
快速生成模型类
生成类库映射文件
生成路由缓存
清除缓存文件
生成配置缓存文件
生成数据表字段缓存
自定义命令行
创建自定义命令行
部署
虚拟主机环境
修改入口文件
Linux 主机环境
php.ini 修改方法
Apache 修改方法
Nginx/Tengine 修改方法
fpm/fastcgi user.ini 修改方法
修改 ThinkPHP5 入口文件
URL重写
[ Apache ]
[ IIS ]
[ Nginx ]
附录
配置参考
惯例配置
应用设置
模块设置
模板引擎设置
分页配置
路径常量
系统常量
助手函数
升级指导
从V5.0.21升级到V5.0.22
从V5.0.20升级到V5.0.21
从V5.0.19升级到V5.0.20
从V5.0.18升级到V5.0.19
从V5.0.17升级到V5.0.18
从V5.0.16升级到V5.0.17
从V5.0.15升级到V5.0.16
默认模板渲染规则改进
从V5.0.14升级到V5.0.15
从V5.0.13升级到V5.0.14
从V5.0.12升级到V5.0.13
从V5.0.11升级到V5.0.12
从V5.0.10升级到V5.0.11
从V5.0.9升级到V5.0.10
从V5.0.8升级到V5.0.9
从V5.0.6升级到V5.0.7
从V5.0.5升级到V5.0.6
从V5.0.4升级到V5.0.5
从V5.0.3升级到V5.0.4
从V5.0.2升级到V5.0.3
从V5.0.1升级到V5.0.2
从V5.0升级到V5.0.1
从V5.0RC4升级到V5.0
从V3.2版本升级到V5.0
需要摒弃的3.X旧思想
模型的变动
新版变化命名规范
函数
路由
控制器
版本对比
模型
数据库
模型
自动验证
配置文件
异常
系统常量的废弃
助手函数
更新日志
2018-10-22 V5.0.22
2018-9-7 V5.0.21
2018-5-11 V5.0.20
2018-4-25 V5.0.19
2018-4-14 V5.0.18
2018-4-12 V5.0.17
2018-3-26 V5.0.16
2018-1-31 V5.0.15
2018-1-1 V5.0.14
2017-12-12 V5.0.13
[数据库和模型]
[其它]
2017-11-06 V5.0.12
[数据库和模型]
[其它]
2017-09-08 V5.0.11
[数据库和模型]
[其它]
2017-07-04 V5.0.10
[数据库和模型]
[其它]
2017-05-20 V5.0.9
[数据库和模型]
[其它]
2017-04-28 V5.0.8
主要调整
[ 请求和路由 ]
[ 模型和数据库 ]
[ 其它 ]
调整
2017-02-24 V5.0.7
主要调整
修正如下
调整如下
2017-02-07 V5.0.6
主要调整:
[数据库和模型]
[其它]
2017-01-23 V5.0.5
主要调整:
[请求和路由]
[数据库和模型]
[其它]
[调整]
2016-12-20 V5.0.4
主要调整:
[请求和路由]
[数据库和模型]
[其它]
[调整]
2016-11-11 V5.0.3
主要调整:
[ 请求和路由 ]
[ 数据库和模型 ]
[ 其它 ]
2016-10-24 V5.0.2
主要调整:
[ 请求和路由 ]
[ 数据库和模型 ]
[ 其它 ]
[ 调整 ]
2016-9-28 V5.0.1
主要调整:
[ 请求和路由 ]
[ 数据库 ]
[ 模型和关联 ]
[ 其它 ]
2016-9-15 V5.0
[ 请求和路由 ]
[ 数据库 ]
[ 模型 ]
[ 日志和缓存 ]
[ 其它 ]
[ 调整 ]
2016-7-1 RC4版本
[ 底层架构 ]
[ 数据库 ]
[ 模型 ]
[ 其它 ]
2016-4-23 RC3版本
[ 底层架构 ]
[ 数据库 ]
[ 模型 ]
[ 其它更新 ]
2016-3-11 RC2版本
2016-1-30 RC1版本
[ 底层架构 ]
[ 调试和异常 ]
[ 路由 ]
[ 控制器 ]
[ 模型 ]
[ 视图 ]
[ 数据库 ]
[ 其他方面 ]
目 录 序言 基础 架构 安装ThinkPHP 开发规范 目录结构 架构总览 生命周期 入口文件 URL访问 模块设计 命名空间 自动加载 Traits引入 API友好 配置 路由 配 置 目 录 配 置 格 式 配 置 加 载 读 取 配 置 动 态 配 置 独 立 配 置 配置作用域 环境变量配置 路由模式 路由定义 批量注册 变量规则 组合变量 路由参数 路由地址 资源路由 快捷路由 路由别名 路由分组 MISS路由 闭 包 支 持 路由绑定 本文档使用 看云 构建 - 2 -
绑定模型 域名路由 URL生成 控制器 请求 控制器定义 控制器初始化 前置操作 跳转和重定向 空操作 空 控 制 器 多级控制器 分层控制器 Rest控制器 自动定位控制器 资源控制器 请求信息 输入变量 更改变量 请求类型 请求伪装 HTTP头信息 伪静态 方法注入 属性注入 参数绑定 依赖注入 请求缓存 数据库 连接数据库 基 本 使 用 查询构造器 查询数据 添加数据 更新数据 删除数据 查询方法 查询语法 链式操作 where table alias 本文档使用 看云 构建 - 3 -
field order limit page group having join union distinct lock cache comment fetchSql force bind partition strict failException sequence 聚合查询 时间查询 高级查询 视图查询 子 查 询 原生查询 查询事件 事务操作 监听SQL 存储过程 数据集 分布式数据库 定义 模型初始化 新增 更 新 删 除 查 询 聚 合 获取器 修改器 时间戳 模型 本文档使用 看云 构建 - 4 -
只读字段 软 删 除 类型转换 数据完成 查询范围 模型分层 数组访问和转换 JSON序列化 事件 关联 一对一关联 一对多关联 远程一对多 多对多关联 多 态 关 联 动 态 属 性 关联预载入 关联统计 聚合模型 视图 模板 视图实例化 模 板 引 擎 模 板 赋 值 模 板 渲 染 输出替换 模 板 定 位 模 板 标 签 变 量 输 出 系 统 变 量 请 求 参 数 使 用 函 数 使用默认值 使用运算符 三 元 运 算 原 样 输 出 模 板 注 释 模 板 布 局 模 板 继 承 包 含 文 件 标签库 内置标签 本文档使用 看云 构建 - 5 -
循环输出标签 比较标签 条件判断 资源文件加载 标签嵌套 原生PHP 定义标签 日志 介绍 日志驱动 日志写入 独立日志 日志清空 写入授权 错误和调试 验证 调试模式 异常处理 抛出异常 Trace调试 变量调试 性能调试 SQL调试 远程调试 404页面 验 证 器 验证规则 错误信息 验证场景 控制器验证 模 型 验 证 内 置 规 则 静 态 调 用 表单令牌 安全 输 入 安 全 数据库安全 上传安全 其它安全建议 杂项 缓存 Session 本文档使用 看云 构建 - 6 -
Cookie 多 语 言 分页 上 传 验证码 图像处理 文件处理 单元测试 扩展 函数 类库 行为 驱动 Composer包 Time 数据库迁移工具 Workerman MongoDb SAE 标签扩展 命令行 自动生成目录结构 创建类库文件 生成类库映射文件 生成路由缓存 清除缓存文件 生成配置缓存文件 生成数据表字段缓存 自定义命令行 部署 附录 虚拟主机环境 Linux 主机环境 URL重写 配置参考 常量参考 助手函数 升级指导 更新日志 本文档使用 看云 构建 - 7 -
序言 序言 手册阅读须知:本手册仅针对ThinkPHP5.0版本(使用左右键( <-- 和 --> )翻页阅读) ThinkPHP V5.0——为API开发而设计的高性能框 架 V5.0版本由七牛云独家赞助发布 ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,是为了敏捷WEB应用开发和简化 企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码 的同时,也注重易用性。遵循 基于ThinkPHP开发的应用开源或商业产品发布/销售。 Apache2 开源许可协议发布,意味着你可以免费使用ThinkPHP,甚至允许把你 ThinkPHP5.0版本是一个颠覆和重构版本,采用全新的架构思想,引入了更多的PHP新特性,优化了核心, 减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由、日志、 异常、模型、数据库、模板引擎和验证等模块都已经重构,不适合原有3.2项目的升级,请慎重考虑商业项目 升级,但绝对是新项目的首选(无论是WEB还是API开发)。 主要特性: V5.0 版本目前进入BUG及安全维护阶段,不再进行功能升级! 规范:遵循 PSR-2 、 PSR-4 规范, Composer 及单元测试支持; 严谨:异常严谨的错误检测和安全机制,详细的日志信息,为你的开发保驾护航; 灵活:减少核心依赖,扩展更灵活、方便,支持命令行指令扩展; API友好:出色的性能和 高效:惰性加载,及路由、配置和自动加载的缓存机制; REST 支持、远程调试,更好的支持API开发; ORM:重构的数据库、模型及关联, MongoDb 支持; 目前最新版本为 V5.0.21 ,查看更新日志和升级指导。 本文档使用 看云 构建 - 8 -
分享到:
收藏