国家软件与集成电路公共服务平台信息技术紧缺人才培养工程指定教材:ThinkPHP 5框架原理与实战
定 价:55 元
- 作者:[中国]黑马程序员
- 出版时间:2019/8/1
- ISBN:9787113259716
- 出 版 社:中国铁道出版社
- 中图法分类:TP312PH
- 页码:
- 纸张:胶版纸
- 版次:
- 开本:16开
全书共有9章,第1章讲解开发环境搭建,第2~4章讲解框架基础知识和ThinkPHP源码分析,第5~7章讲解ThinkPHP开发实战,第8章讲解ThinkPHP与Memcached、Redis、MongoDB等服务器技术的结合,第9章讲解基于ThinkPHP+Vue.js的前后端分离项目“轻社区”的开发实战。通过本书的学习,读者既能理解ThinkPHP的架构思想,也能掌握ThinkPHP在项目开发中的应用。本书既可作为高等院校本、专科计算机相关专业程序设计或者Web应用开发的教材,也可作为PHP进阶提高的培训教材,是一本适合广大计算机编程爱好者的优秀读物。
本书结合实例讲解开发环境搭建、框架基础知识和ThinkPHP源码分析、ThinkPHP开发实战、ThinkPHP与Memcached、Redis、MongoDB等服务器技术的结合,zui后讲解基于ThinkPHP+Vue.js的前后端分离项目“轻社区”的开发实战。
PHP 是一种运行于服务器端并完全跨平台的嵌入式脚本编程语言,具有开源免费、易学易用、开发效率高等特点,是目前 Web 应用开发的主流语言之一。ThinkPHP 是一个使用 PHP 语言编写的免费、开源、轻量级的框架,在国内 Web 开发领域非常受欢迎。 为什么要学习本书本书面向具有网页制作(HTML、CSS、JavaScript)、MySQL 数据库和 PHP 语言基础的人群,讲解 ThinkPHP 的实现原理和开发实战。 为了尽可能地确保读者可以学以致用,具备解决实际问题的能力,本书内容涵盖了大量与 PHP项目开发相关的实用技术,简要介绍如下。 1.开发环境搭建详细讲解了基于 Apache 2.4 + PHP 7.2 + MySQL 5.7 + ThinkPHP 5.1 的开发环境搭建的全过程,帮助读者动手完成每个软件的安装和配置。 2.开发工具使用讲解如何使用 Composer 管理项目依赖,介绍了 Visual Studio Code 编辑器的常用扩展以及常用配置。 3.项目开发技术讲解数据库迁移、远程调试、前后端交互、令牌验证和 RBAC 技术,帮助读者提高代码质量,避免出现安全漏洞。 4.框架实现原理对框架中用到的 MVC 模式、路由、命名空间、自动加载、容器、依赖注入、反射、中间件、异常处理机制、PDO 扩展、数据库访问层、模板引擎等技术进行了全面讲解。 5.前端技术应用将 jQuery、Bootstrap、WebUploader、UEditor、Vue.js 等前端技术应用到项目开发中。 6.后端技术应用讲解 LNMP(Linux + Nginx + MySQL + PHP)服务器架构的搭建,以及 ThinkPHP 如何与Memcached、Redis、MongoDB、Elasticsearch、Swoole 等后端技术相结合。 如何使用本书本书共分为9章,简要介绍如下:第1章主要讲解框架的基本概念、ThinkPHP 发展历程、开发环境搭建、ThinkPHP 的安装和使用。通过本章的学习,读者可以体会到使用框架与不使用框架进行开发的区别,掌握使用ThinkPHP 开发项目的基本流程。 第2章讲解框架的基础知识,内容包括MVC 的基本思想和代码实现、如何设计单一入口框架、路由的实现原理、ThinkPHP 路由的使用、命名空间和自动加载技术在框架中的应用、框架通用的代码规范,以及 Composer 的使用。 第3章讲解框架的实现原理(上),内 容包括如何从零开始编写一个框架、如何使用 Composer管理框架依赖和实现自动加载、什么是控制反转、依赖注入的代码实现、反射在框架中的应用、如何管理项目的配置文件,以及路由检测、请求分发、输入过滤、响应处理、中间件等技术的代码实现。 第4章讲解框架的实现原理(下),内容包括如何在 PHP 中处理异常、PDO 的使用、数据库操作类的设计思想和代码实现,以及模板引擎的使用。 第5章讲解后台管理系统,内容包括数据库迁移、模型的使用、用户登录功能的实现、验证码、使用验证器进行表单验证、封装项目中的 Ajax操作、远程调试技术、令牌验证的原理和代码实现、使用 Bootstrap 技术进行后台页面搭建等。 第6章讲解基于角色的访问控制,在第5章开发的后台管理系统的基础上,增加了菜单管理、角色管理、权限管理和用户管理功能,对每个功能实现了增、删、改、查操作,最后讲解了访问控制的实现。 第7章讲解在线商城项目,在第6章的基础上增加商城项目的后台功能,主要围绕分类管理、图片管理和商品管理进行讲解,涉及分页查询、文件上传、创建缩略图、软删除等技术,以及WebUploader上传组件和 UEditor 编辑器的使用。本书在配套源代码中还提供了在线商城前台的代码实现和开发文档。 第8章讲解 Linux 环境,内容包括LNMP 环境搭建、Memcached 技术、Redis 技术、MongoDB技术、Elasticsearch 技术、Swoole 技术以及 Docker 技术,这些技术一般应用在百万级访问量的大型网站架构中。 第9章讲解基于 ThinkPHP + Vue.js 技术的“轻社区”项目,让读者具备横跨前端、后端和移动端的开发能力,掌握ThinkPHP 在前后端分离项目中的应用。 在上面列举的9个章节中,第1章讲解入门知识,让初学者对 ThinkPHP 有整体的认识;第2~4章讲解框架原理,帮助初学者奠定扎实的基本功;第5~7章和第9章讲解 ThinkPHP 开发实战,帮助读者快速掌握项目开发技术;第 8 章主要介绍各种软件的安装、配置和使用,帮助读者开阔视野,了解大型网站是如何提高性能的。 在学习过程中,读者一定要亲自动手实践本书中的案例,如果不能完全理解书中所讲知识,读者可以登录高校学习平台,通过平台中的教学视频进行深入学习。学习完一个知识点后,要及时在高校学习平台进行测试,以巩固学习内容。 另外,如果读者在理解知识点的过程中遇到困难,建议不要纠结于某个地方,可以先往后学习。通常来讲,通过逐渐地学习,前面不懂和疑惑的知识也就能够理解了。在学习的过程中,一定要多动手实践,如果在实践的过程中遇到问题,建议多思考,理清思路,认真分析问题发生的原因,并在问题解决后总结经验。 致谢本书的编写和整理工作由传智播客教育科技股份有限公司完成,主要参与人员有吕春林、韩冬、王颖等,全体人员在这近一年的编写过程中付出了很多辛勤的汗水,在此表示衷心的感谢。 意见反馈尽管我们付出了最大的努力,但书中难免会有不妥之处,欢迎各界专家和读者朋友们提出宝贵意见,我们将不胜感激。您在阅读本书时,如发现任何问题或有不认同之处,可以通过电子邮件与我们取得联系。 请发送电子邮箱至itcast_book@vip.sina.com。 黑马程序员2019年6月于北京
黑马程序员
第1章 ThinkPHP入门 11.1 初识ThinkPHP 11.1.1 什么是框架 11.1.2 常见的PHP框架 21.1.3 ThinkPHP的发展历程 21.2 开发环境搭建 41.2.1 Apache安装与配置 41.2.2 PHP的安装与配置 61.2.3 MySQL安装与配置 81.2.4 配置虚拟主机 101.2.5 安装Composer依赖管理工具 111.2.6 安装Visual Studio Code编辑器 121.3 ThinkPHP的安装和使用 131.3.1 安装ThinkPHP 131.3.2 使用ThinkPHP开发项目 15本章小结 19课后练习 20第2章 框架的基础知识 212.1 MVC开发模式 212.1.1 什么是MVC 212.1.2 单一入口的框架设计 232.2 路由 262.2.1 路由的实现原理 262.2.2 隐藏入口文件 272.2.3 ThinkPHP中的路由 282.3 命名空间 302.3.1 命名空间的定义 302.3.2 命名空间的使用 322.3.3 导入命名空间 342.4 自动加载 362.4.1 注册自动加载函数 362.4.2 注册多个自动加载函数 382.4.3 注册自动加载方法 382.5 代码规范 392.5.1 PSR规范 392.5.2 配置VS Code编辑器 412.6 Composer 432.6.1 实现类的自动加载 432.6.2 项目依赖管理 452.6.3 创建自己的包 46本章小结 48课后练习 48第3章 框架的实现原理(上) 503.1 创建自定义框架 503.1.1 划分目录结构 503.1.2 自动加载 513.1.3 控制反转和依赖注入 523.1.4 Container类 553.1.5 App类 573.1.6 Facade类 593.2 反射 623.2.1 反射API 623.2.2 利用反射实现参数绑定 653.2.3 利用反射实现依赖注入 663.2.4 自定义实例化 673.3 配置文件 683.3.1 配置文件的设计 683.3.2 配置的读取与修改 693.4 请求和响应 723.4.1 路由检测 723.4.2 请求分发 753.4.3 输入过滤 763.4.4 响应处理 793.4.5 中间件 81本章小结 86课后练习 86第4章 框架的实现原理(下) 884.1 异常处理 884.1.1 异常的抛出和捕获 884.1.2 自定义异常 894.1.3 多异常捕获处理 914.1.4 在框架中处理异常 934.2 PDO扩展 934.2.1 PDO基本使用 944.2.2 PDO预处理机制 974.2.3 PDO异常处理 994.2.4 PDO事务处理 1014.3 框架中的数据库操作 1024.3.1 ThinkPHP的数据库架构 1024.3.2 编写数据库操作类 1034.3.3 编写数据库操作方法 1074.3.4 自动生成SQL语句 1114.4 模板引擎 1194.4.1 Smarty模板引擎 1194.4.2 ThinkPHP模板引擎 123本章小结 124课后练习 125第5章 后台管理系统 1265.1 准备工作 1265.1.1 项目说明 1265.1.2 创建项目 1275.1.3 项目环境变量 1285.1.4 数据库迁移 1305.2 模型的使用 1335.2.1 模型的使用步骤 1335.2.2 模型的常用操作 1355.2.3 数据集的使用 1395.3 后台用户登录 1405.3.1 创建数据表 1415.3.2 用户登录页面 1425.3.3 表单验证 1455.3.4 Ajax交互 1505.3.5 远程调试 1555.3.6 令牌验证 1565.3.7 检测用户是否已经登录 1595.3.8 用户退出 1605.4 后台页面搭建 1615.4.1 后台布局 1615.4.2 后台首页 1635.4.3 后台菜单 1645.4.4 Ajax交互 165本章小结 166课后练习 167第6章 基于角色的访问控制 1686.1 菜单管理 1686.1.1 创建数据表 1686.1.2 菜单展示 1706.1.3 菜单列表 1736.1.4 菜单添加和修改 1766.1.5 表单验证 1796.1.6 菜单删除 1816.2 角色管理 1826.2.1 创建数据表 1826.2.2 角色列表 1826.2.3 角色添加和修改 1846.2.4 角色删除 1866.3 权限管理 1876.3.1 创建数据表 1876.3.2 权限列表 1886.3.3 权限添加和修改 1926.3.4 权限删除 1966.4 用户管理 1966.4.1 用户列表 1966.4.2 用户添加和修改 1996.4.3 用户删除 2026.4.4 修改密码 2026.5 访问控制 2046.5.1 检查用户权限 2046.5.2 根据用户权限显示菜单 206本章小结 206课后练习 206第7章 在线商城项目 2087.1 分类管理 2087.1.1 添加菜单项 2087.1.2 创建数据表 2097.1.3 分类列表 2107.1.4 分类添加和修改 2137.1.5 分类删除 2177.2 图片管理 2177.2.1 创建数据表 2177.2.2 相册列表 2197.2.3 查看相册 2217.2.4 整合WebUploader 2237.2.5 上传图片 2277.2.6 创建缩略图 2297.2.7 删除图片 2317.2.8 将相册放入模态框 2327.3 商品管理 2357.3.1 创建数据表 2357.3.2 商品列表 2367.3.3 商品软删除 2397.3.4 快捷上下架 2437.3.5 商品添加与修改 2447.3.6 上传图片 2487.3.7 整合UEditor 252本章小结 255课后练习 255第8章 Linux环境 2578.1 LNMP环境搭建 2578.1.1 安装Linux 2578.1.2 安装Nginx 2618.1.3 安装PHP 2648.1.4 安装MySQL 2688.1.5 安装Composer和ThinkPHP 2718.2 Memcached 2728.2.1 初识Memcached 2728.2.2 安装Memcached 2738.2.3 PHP操作Memcached 2758.2.4 ThinkPHP操作Memcached 2788.3 Redis 2798.3.1 初识Redis 2798.3.2 安装Redis 2798.3.3 Redis入门 2828.3.4 PHP操作Redis 2858.3.5 ThinkPHP操作Redis 2868.4 MongoDB 2878.4.1 初识MongoDB 2878.4.2 安装MongoDB 2888.4.3 MongoDB入门 2898.4.4 PHP操作MongoDB 2918.4.5 ThinkPHP操作MongoDB 292 8.5 Elasticsearch 2938.5.1 初识Elasticsearch 2938.5.2 安装Elasticsearch 2948.5.3 使用Elasticsearch 2958.5.4 ThinkPHP操作Elasticsearch 2988.6 Swoole 2998.6.1 初识Swoole 2998.6.2 安装Swoole 2998.6.3 使用Swoole 3008.7 Docker 3018.7.1 初识Docker 3018.7.2 安装Docker 3018.7.3 使用Docker 302本章小结 303课后练习 303第9章 ThinkPHP+Vue.js轻社区项目 3059.1 前后端分离开发概述 3059.2 项目介绍 3069.2.1 项目展示 3069.2.2 需求分析 3079.2.3 技术方案 3089.2.4 数据库设计 3089.3 项目开发说明 310本章小结 310