epub文档 ThinkPHP5.1完全开发手册-10261224 VIP文档 推荐

6.26 MB 1127 页 3 下载 46 浏览 0 评论 0 收藏
语言 格式 评分
中文(简体)
.epub
3
概览
目 录 序言 基础 安装 开发规范 目录结构 配置 架构 架构总览 入口文件 URL访问 模块设计 命名空间 容器和依赖注入 Facade 钩子和行为 中间件 路由 路由定义 变量规则 路由地址 闭包支持 路由参数 路由缓存 跨域请求 注解路由 路由分组 MISS路由 资源路由 快捷路由 路由别名 路由绑定 域名路由 URL生成 控制器 控制器定义 前置操作 跳转和重定向 空操作和空控制器 分层控制器 资源控制器 控制器中间件 请求 请求对象 请求信息 输入变量 请求类型 HTTP头信息 伪静态 参数绑定 请求缓存 响应 响应输出 响应参数 重定向 文件下载 数据库 连接数据库 查询构造器 查询数据 添加数据 更新数据 删除数据 查询表达式 链式操作 where table alias field strict limit page order group having join union distinct lock cache comment fetchSql force partition failException sequence 聚合查询 时间查询 高级查询 视图查询 JSON字段 子查询 原生查询 查询事件 获取器 事务操作 监听SQL 存储过程 数据集 分布式数据库 模型 定义 新增 更新 删除 查询 JSON字段 获取器 修改器 搜索器 数据集 自动时间戳 只读字段 软删除 类型转换 数据完成 查询范围 模型输出 模型事件 模型关联 一对一关联 一对多关联 远程一对多 多对多关联 多态关联 关联预载入 关联统计 关联输出 视图 视图渲染 视图赋值 视图过滤 模板引擎 模板 变量输出 使用函数 运算符 原样输出 模板注释 模板布局 模板继承 包含文件 输出替换 标签库 内置标签 循环标签 比较标签 条件判断 资源文件加载 标签嵌套 原生PHP 定义标签 标签扩展 错误和日志 异常处理 日志处理 调试 调试模式 Trace调试 性能调试 SQL调试 变量调试 远程调试 验证 验证器 验证规则 错误信息 验证场景 路由验证 内置规则 独立验证 静态调用 表单令牌 杂项 缓存 Session Cookie 多语言 分页 上传 命令行 启动内置服务器 查看版本 自动生成目录结构 创建类库文件 生成类库映射文件 清除缓存文件 生成配置缓存文件 生成数据表字段缓存 生成路由映射缓存 输出路由定义 自定义指令 扩展库 验证码 图像处理 Time 数据库迁移工具 Swoole Workerman MongoDb 单元测试 安全和性能 安全建议 优化建议 附录 助手函数 升级指导 更新日志 序言 手册阅读须知:本手册仅针对ThinkPHP 5.1.* 版本 框架简介 ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框 架,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞 生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同 时,也注重易用性。遵循 Apache2 开源许可协议发布,意味着你可以免费 使用ThinkPHP,甚至允许把你基于ThinkPHP开发的应用开源或商业产品发 布/销售。 ThinkPHP 5.1 在 5.0 的基础上对底层架构做了进一步的改进,引入 新特性,并提升版本要求。另外一个事实是, 5.1 版本看起来对开发者 更加友好,表现在目录结构更直观、调试输出更直观和代码提示更直观。 ThinkPHP 5.1 运行环境要求 PHP5.6+ ,虽然不支持 5.0 的无缝 升级,但升级过程并不复杂(请参考升级指导), 5.1.* 版本基本上可 以支持无缝升级。 主要特性 V5.1.27 版本开始, 5.1 版本已经正式作为 LTS 版本,提供长达 三年的服务支持,可以放心使用。 引入容器和 Facade 支持 依赖注入完善和支持更多场景 重构的(对象化)路由 支持注解路由 跨域请求支持 配置和路由目录独立 取消系统常量 助手函数增强 类库别名机制 模型和数据库增强 验证类增强 模板引擎改进 支持 PSR-3 日志规范 中间件支持( V5.1.6+ ) 支持 Swoole / Workerman 运行( V5.1.18+ ) 官方服务 ThinkPHP 服务市场 ThinkPHP应用服务市场是官方作为战略服务倾力打造的生态服务交易及 交付平台,为ThinkPHP开发者和爱好者严选官方及第三方产品和服务, 并提供交易保障。 ThinkAPI 统一API接口服务 ThinkAPI 统一 API 接口服务是由官方联合合作伙伴封装的一套接 口调用服务并提供了优雅的 SDK 调用,旨在帮助 ThinkPHP 开发者 更方便和更低成本调用官方及第三方的提供的各类 API 接口及服务, 从而更好的构建开发者生态。 ThinkPHP5 官方 QQ 群 ThinkPHP5快速入门专用 9252394(仅对快速入门教程付费用户) ThinkPHP5新手一群 272433397(已满) ThinkPHP5新手二群 369126686(已满) ThinkPHP5高级群 50546480(付费) 版权申明 发布本资料须遵守开放出版许可协议 1.0 或者更新版本。 未经版权所有者明确授权,禁止发行本文档及其被实质上修改的版本。 未经版权所有者事先授权,禁止将此作品及其衍生作品以标准(纸质)书籍形 式发行。 如果有兴趣再发行或再版本手册的全部或部分内容,不论修改过与否,或者有 任何问题,请联系版权所有者 thinkphp@qq.com。 对ThinkPHP有任何疑问或者建议,请进入官方讨论区 [ http://www.thinkphp.cn/topic ] 发布相关讨论。 有关ThinkPHP项目及本文档的最新资料,请及时访问ThinkPHP项目主 站 http://www.thinkphp.cn。 本文档的版权归ThinkPHP文档小组所有,本文档及其描述的内容受有关法 律的版权保护,对本文档内容的任何形式的非法复制,泄露或散布,将导 致相应的法律责任。 基础 安装 开发规范 目录结构 配置 安装 ThinkPHP5.1 的环境要求如下: PHP >= 5.6.0 PDO PHP Extension MBstring PHP Extension 严格来说, ThinkPHP 无需安装过程,这里所说的安装其实就是把 ThinkPHP 框架放入 WEB 运行环境(前提是你的WEB运行环境已经 OK),可以通过下面几种方式获取和安装ThinkPHP。 5.1 版本开始,官网不再提供下载版本,请使用 Composer 或者 git 方式安装和更新。 Composer安装 ThinkPHP5 支持使用 Composer 安装 如果还没有安装 Composer ,在 Linux 和 Mac OS X 中可以运 行如下命令: curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer 在 Windows 中,你需要下载并运行 Composer-Setup.exe。 如果遇到任何问题或者想更深入地学习 Composer,请参考 Composer 文 档(英文),Composer 中文。 由于众所周知的原因,国外的网站连接速度很慢。因此安装的时间可能会比较 长,我们建议通过下面的方式使用国内镜像。 打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如 下命令: composer config -g repo.packagist composer https://p ackagist.phpcomposer.com 注意:最近 phpcomposer 镜像存在问题,可以改成 composer config -g repo.packagist composer https://m irrors.aliyun.com/composer/ 如果你是第一次安装的话,在命令行下面,切换到你的WEB根目录下面并执 行下面的命令: composer create-project topthink/think=5.1.* tp5 这里的 tp5 目录名你可以任意更改,执行完毕后,会在当前目录下的 tp5 子目录安装最新版本的ThinkPHP,这个目录就是我们后面会经常提到 的应用根目录。 如果你之前已经安装过,那么切换到你的应用根目录下面,然后执行下面的命 令进行更新: composer update topthink/framework 更新操作会删除 thinkphp 目录重新下载安装新版本,但不会影响 application 目录,因此不要在核心框架目录添加任何应用代码和类 库。 安装和更新命令所在的目录是不同的,更新必须在你的应用根目录下面执 行 如果出现错误提示,请根据提示操作或者参考Composer中文文档。 一般情况下, composer 安装的是最新的稳定版本,不一定是最新版本, 如果你需要安装实时更新的版本(适合学习过程),可以安装 5.1.x-dev 版本。 composer create-project topthink/think=5.1.x-dev tp5 Git安装 也可以使用 git 版本库安装和更新, ThinkPHP5.1 主要分为应用和核 心两个仓库,主要包括: 应用项目: https://github.com/top-think/think 核心框架: https://github.com/top-think/framework 之所以设计为应用和核心仓库的分离,是为了支持 Composer 单独更新 核心框架。 安装也需要分两步操作,首先克隆下载应用项目仓库 git clone https://github.com/top-think/think tp5 然后切换到 tp5 目录下面,再克隆核心框架仓库(注意目录名称不要改 变): git clone https://github.com/top-think/framework think php 如果你访问 github 速度比较慢,可以考虑下面两个国内GIT仓库(国内 仓库以稳定版本为主,不确保实时更新): [ 码云 ] 应用项目:https://gitee.com/liu21st/thinkphp5.git 核心框架:https://gitee.com/liu21st/framework.git [ Coding ] 应用项目:https://git.coding.net/liu21st/thinkphp5.git 核心框架:https://git.coding.net/liu21st/framework.git 由于目前仓库默认分支不是 5.1 版本,你需要切换到 5.1 分支(首先 进入thinkphp目录后执行下面的命令) git checkout 5.1 两个仓库克隆完成后,就完成了 ThinkPHP5.1 的 Git 方式下载,如果 需要更新核心框架的时候,只需要切换到 thinkphp 核心目录下面,然后 执行: git pull 请不要在应用目录下执行git更新操作。 如果不熟悉 git 命令行,可以使用任何一个GIT客户端进行操作,在此 不再详细说明。 现在只需要做最后一步来验证是否正常运行。 在浏览器中输入地址: http://localhost/tp5/public/ 如果浏览器输出如图所示: 恭喜你,现在已经完成 ThinkPHP5.1 的安装! 实际部署中,应该是绑定域名访问到 public 目录,确保其它目录不在 WEB目录下面。 开发规范 命名规范 ThinkPHP5.1 遵循 PSR-2 命名规范和 PSR-4 自动加载规范,并且 注意如下规范: 目录和文件 目录使用小写+下划线; 类库、函数文件统一以 .php 为后缀; 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径 一致; 类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命 名; 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写); 函数和类、属性命名 类的命名采用驼峰法(首字母大写),例如 User 、 UserType , 默认不需要添加后缀,例如 UserController 应该直接命名为 User ; 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如 get_client_ip ; 方法的命名使用驼峰法(首字母小写),例如 getUserName ; 属性的命名使用驼峰法(首字母小写),例如 tableName 、 instance ; 特例:以双下划线 __ 打头的函数或方法作为魔术方法,例如 __call 和 __autoload ; 常量和配置 常量以大写字母和下划线命名,例如 APP_PATH ; 配置参数以小写字母和下划线命名,例如 url_route_on 和 url_convert ; 环境变量定义使用大写字母和下划线命名,例如 APP_DEBUG ; 数据表和字段 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开 头,例如 think_user 表和 user_name 字段,不建议使用驼峰 和中文作为数据表及字段命名。 请理解并尽量遵循以上命名规范,可以减少在开发过程中出现不必要的错误。 请避免使用PHP保留字(保留字列表参见 http://php.net/manual/zh/reserved.keywords.php )作为常量、类名和方法 名,以及命名空间的命名,否则会造成系统错误。 目录结构 目录结构 相对于 5.0 来说, 5.1 版本目录结构的主要变化是配置目录和路由定 义目录独立出来,不再放入应用类库目录(并且不可更改)。 www WEB部署目录(或者子目录) ├─application 应用目录 │ ├─common 公共模块目录(可以更改) │ ├─module_name 模块目录 │ │ ├─common.php 模块函数文件 │ │ ├─controller 控制器目录 │ │ ├─model 模型目录 │ │ ├─view 视图目录 │ │ ├─config 配置目录 │ │ └─ ... 更多类库目录 │ │ │ ├─command.php 命令行定义文件 │ ├─common.php 公共函数文件 │ └─tags.php 应用行为扩展定义文件 │ ├─config 应用配置目录 │ ├─module_name 模块配置目录 │ │ ├─database.php 数据库配置 │ │ ├─cache 缓存配置 │ │ └─ ... │ │ │ ├─app.php 应用配置 │ ├─cache.php 缓存配置 │ ├─cookie.php Cookie配置 │ ├─database.php 数据库配置 │ ├─log.php 日志配置 │ ├─session.php Session配置 │ ├─template.php 模板引擎配置 │ └─trace.php Trace配置 │ ├─route 路由定义目录 │ ├─route.php 路由定义 │ └─... 更多 │ ├─public WEB目录(对外访问目录) │ ├─index.php 入口文件 │ ├─router.php 快速测试文件 │ └─.htaccess 用于apache的重写 │ ├─thinkphp 框架系统目录 │ ├─lang 语言文件目录 │ ├─library 框架类库目录 │ │ ├─think Think类库包目录 │ │ └─traits 系统Trait目录 │ │ │ ├─tpl 系统模板目录 │ ├─base.php 基础定义文件 │ ├─convention.php 框架惯例配置文件 │ ├─helper.php 助手函数文件 │ └─logo.png 框架LOGO文件 │ ├─extend 扩展类库目录 ├─runtime 应用的运行时目录(可写,可定制) ├─vendor 第三方类库目录(Composer依赖库) ├─build.php 自动生成定义文件(参考) ├─composer.json composer 定义文件 ├─LICENSE.txt 授权说明文件 ├─README.md README 文件 ├─think 命令行入口文件 在 mac 或者 linux 环境下面,注意需要设置 runtime 目录权限为 777。 由于 5.1 版本取消了系统路径的常量定义,因此系统的目录名称不可更 改。如果需要更改应用目录或者入口文件位置,参考架构章节的入口文件 部分。 配置 配置基础 ThinkPHP 遵循惯例重于配置的原则,系统会按照下面的顺序来加载配置 文件(配置的优先顺序从右到左)。 惯例配置->应用配置->模块配置->动态配置 惯例配置:核心框架内置的配置文件,无需更改。 应用配置:每个应用的全局配置文件(框架安装后会生成初始的应用配置 文件)
下载文档到本地,方便使用
共 1127 页, 还有 1125 页可预览, 继续阅读
文档评分
请文明评论,理性发言.