计算机类专业教育 > 程序设计类

ThinkPHP 5框架原理与实战

书号:9787113259716 套系名称:国家软件与集成电路公共服务平台信息技术紧缺人才培养工程指定教材

作者:黑马程序员 出版日期:2019-09-01

定价:55.00 页码 / 开本:320 /16

策划编辑:翟玉峰 责任编辑:翟玉峰 贾淑媛

适用专业:计算机类 适用层次:本科,高职高专

最新印刷时间:

资源下载
教学课件 教学素材(暂无)
习题答案(暂无) 教学案例(暂无)
教学设计 教学视频(暂无)
内容简介 前言 目录 作者介绍 图书特色
  • ThinkPHP是一个使用PHP语言编写的免费、开源、轻量级的框架,主要用来开发Web应用,帮助企业提高项目开发速度,降低开发成本。ThinkPHP从诞生至今经历了多个版本,本书讲解的是ThinkPHP 5.1版本,相比以前的3.x版本,采用了全新的架构思想,引入了许多PHP的新特性。
    全书共有9章,第1章讲解开发环境搭建,第2~4章讲解框架基础知识和ThinkPHP源码分析,第5~7章讲解ThinkPHP开发实战,第8章讲解ThinkPHP与Memcached、Redis、MongoDB等服务器技术的结合,第9章讲解基于ThinkPHP+Vue.js的前后端分离项目“轻社区”的开发实战。通过本书的学习,读者既能理解ThinkPHP的架构思想,也能掌握ThinkPHP在项目开发中的应用。
    本书既可作为高等院校本、专科计算机相关专业程序设计或者Web应用开发的教材,也可作为PHP进阶提高的培训教材,是一本适合广大计算机编程爱好者的优秀读物。
    
  • 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入门 1
    1.1  初识ThinkPHP 1
    1.1.1  什么是框架 1
    1.1.2  常见的PHP框架 2
    1.1.3  ThinkPHP的发展历程 2
    1.2  开发环境搭建 4
    1.2.1  Apache安装与配置 4
    1.2.2  PHP的安装与配置 6
    1.2.3  MySQL安装与配置 8
    1.2.4  配置虚拟主机 10
    1.2.5  安装Composer依赖管理工具 11
    1.2.6  安装Visual Studio Code编辑器 12
    1.3  ThinkPHP的安装和使用 13
    1.3.1  安装ThinkPHP 13
    1.3.2  使用ThinkPHP开发项目 15
    本章小结 19
    课后练习 20
    第2章  框架的基础知识 21
    2.1  MVC开发模式 21
    2.1.1  什么是MVC 21
    2.1.2  单一入口的框架设计 23
    2.2  路由 26
    2.2.1  路由的实现原理 26
    2.2.2  隐藏入口文件 27
    2.2.3  ThinkPHP中的路由 28
    2.3  命名空间 30
    2.3.1  命名空间的定义 30
    2.3.2  命名空间的使用 32
    2.3.3  导入命名空间 34
    2.4  自动加载 36
    2.4.1  注册自动加载函数 36
    2.4.2  注册多个自动加载函数 38
    2.4.3  注册自动加载方法 38
    2.5  代码规范 39
    2.5.1  PSR规范 39
    2.5.2  配置VS Code编辑器 41
    2.6  Composer 43
    2.6.1  实现类的自动加载 43
    2.6.2  项目依赖管理 45
    2.6.3  创建自己的包 46
    本章小结 48
    课后练习 48
    第3章  框架的实现原理(上) 50
    3.1  创建自定义框架 50
    3.1.1  划分目录结构 50
    3.1.2  自动加载 51
    3.1.3  控制反转和依赖注入 52
    3.1.4  Container类 55
    3.1.5  App类 57
    3.1.6  Facade类 59
    3.2  反射 62
    3.2.1  反射API 62
    3.2.2  利用反射实现参数绑定 65
    3.2.3  利用反射实现依赖注入 66
    3.2.4  自定义实例化 67
    3.3  配置文件 68
    3.3.1  配置文件的设计 68
    3.3.2  配置的读取与修改 69
    3.4  请求和响应 72
    3.4.1  路由检测 72
    3.4.2  请求分发 75
    3.4.3  输入过滤 76
    3.4.4  响应处理 79
    3.4.5  中间件 81
    本章小结 86
    课后练习 86
    第4章  框架的实现原理(下) 88
    4.1  异常处理 88
    4.1.1  异常的抛出和捕获 88
    4.1.2  自定义异常 89
    4.1.3  多异常捕获处理 91
    4.1.4  在框架中处理异常 93
    4.2  PDO扩展 93
    4.2.1  PDO基本使用 94
    4.2.2  PDO预处理机制 97
    4.2.3  PDO异常处理 99
    4.2.4  PDO事务处理 101
    4.3  框架中的数据库操作 102
    4.3.1  ThinkPHP的数据库架构 102
    4.3.2  编写数据库操作类 103
    4.3.3  编写数据库操作方法 107
    4.3.4  自动生成SQL语句 111
    4.4  模板引擎 119
    4.4.1  Smarty模板引擎 119
    4.4.2  ThinkPHP模板引擎 123
    本章小结 124
    课后练习 125
    第5章  后台管理系统 126
    5.1  准备工作 126
    5.1.1  项目说明 126
    5.1.2  创建项目 127
    5.1.3  项目环境变量 128
    5.1.4  数据库迁移 130
    5.2  模型的使用 133
    5.2.1  模型的使用步骤 133
    5.2.2  模型的常用操作 135
    5.2.3  数据集的使用 139
    5.3  后台用户登录 140
    5.3.1  创建数据表 141
    5.3.2  用户登录页面 142
    5.3.3  表单验证 145
    5.3.4  Ajax交互 150
    5.3.5  远程调试 155
    5.3.6  令牌验证 156
    5.3.7  检测用户是否已经登录 159
    5.3.8  用户退出 160
    5.4  后台页面搭建 161
    5.4.1  后台布局 161
    5.4.2  后台首页 163
    5.4.3  后台菜单 164
    5.4.4  Ajax交互 165
    本章小结 166
    课后练习 167
    第6章  基于角色的访问控制 168
    6.1  菜单管理 168
    6.1.1  创建数据表 168
    6.1.2  菜单展示 170
    6.1.3  菜单列表 173
    6.1.4  菜单添加和修改 176
    6.1.5  表单验证 179
    6.1.6  菜单删除 181
    6.2  角色管理 182
    6.2.1  创建数据表 182
    6.2.2  角色列表 182
    6.2.3  角色添加和修改 184
    6.2.4  角色删除 186
    6.3  权限管理 187
    6.3.1  创建数据表 187
    6.3.2  权限列表 188
    6.3.3  权限添加和修改 192
    6.3.4  权限删除 196
    6.4  用户管理 196
    6.4.1  用户列表 196
    6.4.2  用户添加和修改 199
    6.4.3  用户删除 202
    6.4.4  修改密码 202
    6.5  访问控制 204
    6.5.1  检查用户权限 204
    6.5.2  根据用户权限显示菜单 206
    本章小结 206
    课后练习 206
    第7章  在线商城项目 208
    7.1  分类管理 208
    7.1.1  添加菜单项 208
    7.1.2  创建数据表 209
    7.1.3  分类列表 210
    7.1.4  分类添加和修改 213
    7.1.5  分类删除 217
    7.2  图片管理 217
    7.2.1  创建数据表 217
    7.2.2  相册列表 219
    7.2.3  查看相册 221
    7.2.4  整合WebUploader 223
    7.2.5  上传图片 227
    7.2.6  创建缩略图 229
    7.2.7  删除图片 231
    7.2.8  将相册放入模态框 232
    7.3  商品管理 235
    7.3.1  创建数据表 235
    7.3.2  商品列表 236
    7.3.3  商品软删除 239
    7.3.4  快捷上下架 243
    7.3.5  商品添加与修改 244
    7.3.6  上传图片 248
    7.3.7  整合UEditor 252
    本章小结 255
    课后练习 255
    第8章  Linux环境 257
    8.1  LNMP环境搭建 257
    8.1.1  安装Linux 257
    8.1.2  安装Nginx 261
    8.1.3  安装PHP 264
    8.1.4  安装MySQL 268
    8.1.5  安装Composer和ThinkPHP 271
    8.2  Memcached 272
    8.2.1  初识Memcached 272
    8.2.2  安装Memcached 273
    8.2.3  PHP操作Memcached 275
    8.2.4  ThinkPHP操作Memcached 278
    8.3  Redis 279
    8.3.1  初识Redis 279
    8.3.2  安装Redis 279
    8.3.3  Redis入门 282
    8.3.4  PHP操作Redis 285
    8.3.5  ThinkPHP操作Redis 286
    8.4  MongoDB 287
    8.4.1  初识MongoDB 287
    8.4.2  安装MongoDB 288
    8.4.3  MongoDB入门 289
    8.4.4  PHP操作MongoDB 291
    8.4.5  ThinkPHP操作MongoDB 292
     
    8.5  Elasticsearch 293
    8.5.1  初识Elasticsearch 293
    8.5.2  安装Elasticsearch 294
    8.5.3  使用Elasticsearch 295
    8.5.4  ThinkPHP操作Elasticsearch 298
    8.6  Swoole 299
    8.6.1  初识Swoole 299
    8.6.2  安装Swoole 299
    8.6.3  使用Swoole 300
    8.7  Docker 301
    8.7.1  初识Docker 301
    8.7.2  安装Docker 301
    8.7.3  使用Docker 302
    本章小结 303
    课后练习 303
    第9章  ThinkPHP+Vue.js轻社区项目 305
    9.1  前后端分离开发概述 305
    9.2  项目介绍 306
    9.2.1  项目展示 306
    9.2.2  需求分析 307
    9.2.3  技术方案 308
    9.2.4  数据库设计 308
    9.3  项目开发说明 310
    本章小结 310
    
  • “黑马程序员”是江苏传智播客教育科技股份有限公司(简称传智播客)旗下高端IT教育品牌。传智播客是一家专门致力于高素质软件开发人才培养的高科技公司。传智播客致力于为企业优选一流的人才的培训理念,经过多年的教学探索及战略布局,已向着综合型职业教育集团发展。
    
  • (1)本书讲解了基于Apache 2.4+PHP 7.2+MySQL 5.7+ThinkPHP 5.1的开发环境搭建的全过程,帮助读者动手完成每个软件的安装和配置。(2)案例丰富,结合案例讲解相关知识。