PHP 7 编程实战
  • 推荐0
  • 收藏1
  • 浏览151

PHP 7 编程实战

Doug Bierer (作者)  苏宝龙 (译者)

  • 书  号:978-7-121-32772-8
  • 出版日期:2017-10-13
  • 页  数:600
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 原书名: PHP 7 Programming Cookbook
  • 原书号:9781785883446
  • 维护人:张春雨
纸质版 ¥119.00

相关图书

OpenCV算法精解:基于Python与C++

张平 (作者)

开篇先介绍如何在Windows和ubuntu上部署OpenCV,然后过度到核心章节,从灰度图像、彩色图像、图像平滑、边缘检测、霍夫变换等几个维度入手讲解,尽量拆...

¥79.00

Kotlin开发快速入门与实战

王志强 (作者)

本书主要介绍在Kotlin开发中各种相关的技术及知识,全书共分为7章,内容层次清晰,难度循序渐进。第1章介绍Kotlin编程环境的搭建、如何运行Kotlin项目...

 

Boost程序库完全开发指南——深入C++"准”标准库(第4版)

罗剑锋 (作者)

Boost 是一个功能强大、构造精巧、跨平台、开源并且完全免费的C++程序库,有着“C++‘准’<br>标准库”的美誉。<br>Boost 由C++标准委员会部...

¥99.00

Java EE互联网轻量级框架整合开发— —SSM框架(Spring MVC+Spring+MyBatis)和Redis实现

杨开振 周吉文 梁华辉 谭茂华 (作者)

随着移动互联网的兴起,以Java技术为后台的互联网技术占据了市场的主导地位,而在Java互联网后台开发中,SSM框架(Spring+Spring MVC+MyB...

¥119.00

揭秘Java虚拟机:JVM设计原理与实现

封亚飞 (作者)

《揭秘Java虚拟机:JVM设计原理与实现》从源码角度解读HotSpot的内部实现机制,本书主要包含三大部分——JVM数据结构设计与实现、执行引擎机制及内存分配...

¥129.00

大型IT系统智能一体化测试

陈绍英 (作者)

本书是一本来自软件自动化测试领域资深专家的作品,主要用于推广智能一体化测试理论及应用。作者在书中深入浅出地讲解了自己在银行领域悟出的智能一体化测试这一全新的理论...

¥69.00
Web网站的专门化和多元化发展趋势,要求网页编程语言必须满足编写出运行速度快、节省资源且具有较高安全性动态网页的需求。本书介绍的PHP 7网页编程语言就是其中的佼佼者。
本书由13章构成,详细介绍了PHP 7的新增功能和中高级PHP技术,包括安装和配置PHP 7开发环境的入门知识、PHP 7的新增功能、PHP中的函数式编程功能、PHP面向对象编程功能的基础知识、使用命名空间和特性(trait)的方式、从数据库读取数据和向数据库中写入数据的方式、创建HTML表单元素的类的方式、过滤与验证数据的方式、实现SOAP和REST客户端与服务器的手段、PHP最新的国际化网页功能、遵循PSR-7编程规范编写中间件的方式、使用PHP实现高级算法(如链表、冒泡排序程序、堆栈和二分查找程序)的方式、软件设计模式、当前互联网中常见的攻击手段和相应的防护手段、加密/解密技术,以及可帮助你编写出优质代码的最佳编程习惯和调试技巧。此外,附录还介绍了PSR-7编程规范。
80+真实案例 全覆盖7.X高级功能 锁定旧版不兼容代码
译者序
互联网(internet,又称为因特网)始于20世纪60年代末的美国,最初仅用于军事和科研。1989年3月12日万维网(World Wide Web,无数个Web服务器和客户端的集合)在internet中诞生。大批富豪风起云涌般随之崛起,如Amazon的创始人杰夫·贝佐斯、Yahoo的创始人杨致远、百度的创始人李彦宏以及阿里巴巴的创始人马云等。人们对计算机网络的运用有了翻天覆地的变化。了解新闻不再需要买报纸、看电视,上网(即浏览网站,也就是访问Web服务器)就可以;了解百科知识(如查字典上的解释、医药信息、电子信息、机械知识甚至出行路线),上网就可以;买东西,上网就可以。上网还可以娱乐,如看电视剧、看电影、玩电子游戏。简言之,万维网已经成为人类生活必不可少的组成部分。
万维网诞生之初,Web网站的内容非常简单:文字和图片。因此对网页编程语言的要求也非常简单——能够美观地为浏览网站的用户显示出文字和图片即可。简单的HTML语言足以胜任这项工作。但随着万维网的不断发展,网站的功能也变得越来越专门化(例如专门提供娱乐的视频、游戏网站,以及专门提供网页搜索服务的网站)和多元化(例如购物网站、聚集各种爱好者的网站),各种网站的内容和功能也不断丰富。因而对网页编程语言的要求也越来越高。
当前的Web网站要求网页编程语言必须能够编写出运行速度快、节省资源且具有较高安全性的动态网页。PHP符合所有这些要求,下面是它的优点:
? PHP属于开源软件,源代码完全公开。
? 开源软件是免费的,非常省钱。
? 任何程序员都能非常容易地为PHP扩展附加功能。
? 可跨平台,能够和很多免费的平台结合。
? PHP语法简单,非常容易上手,可快速实现从设计一个网页到编写一个Web应用程序的飞越。使用PHP,刚刚成为软件工程师甚至还不是软件工程师的人都能够提交新功能。PHP是为了快速制造新东西而生的(这是维基百科和Facebook选择PHP的原因)。
? PHP将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI程序高很多。PHP可以执行编译后代码,编译可以达到加密和优化代码的目的,使代码运行得更快。
? PHP支持十多种主流与非主流数据库,如:dBase、Informix、mSQL、MySQL、Microsoft SQL Server、Sybase、ODBC、PostgreSQL、Oracle等。其中,PHP与MySQL是绝佳的组合,可以跨平台运行。
? 目前主流技术(如WebService、AJAX、XML等)都支持PHP,因此能够满足应用需求。
? 很多大型门户网站都使用PHP,如淘宝网、网易、新浪等。
? PHP提供了类和对象,实现了面向对象编程功能。
? 有成熟的开发者社区支持PHP的研究和发展。
本书的作者Doug Bierer先生是一位拥有三十多年经验的资深软件开发者,他在本书中使用了大量的实践案例。这些范例程序既有实用性也有启迪性,深入浅出地讲解了PHP 7的新增功能和中高级PHP技术。
翻译前沿计算机科学书籍的工作并不轻松,也不是单独一个人能够完成的。在此我要感谢电子工业出版社张春雨等编辑对本书提供的帮助。此外,苏连印、刘桂英、艾玉林、孙召景、张纪悦、张纪华、孙德林、马佳妮、尹晓婷、徐雯、郭昕、陆迎明和孙召恒等也参与了本书的翻译工作,在此对他们表示感谢。
因时间仓促,译者水平有限,本书难免有错漏之处,欢迎广大读者朋友们批评指正。

苏宝龙


推荐序
PHP 7为我们带来了大量的新功能和改进,如抽象语法树(Abstract Syntax Tree,AST)、可被捕捉的错误、标量类型提示功能、返回值数据类型声明以及大幅度的性能提升等。
PHP开发者当前面临的问题不是“我应该使用这些新功能吗”,而是“我怎样才能使用这些新功能开发出品质更好、速度更快的应用程序呢”。
对于使用PHP 4开发应用程序的情景,我记忆犹新。对于PHP开发者来说,那是一段更为纯真的时光,因为可以将PHP代码和HTML代码混合在一起,而且能够将这些代码都放在一个文件中。那时候我们使用导入的函数库,而不使用框架。PHP应用程序基本上只是具有简单基本功能的桌面应用程序,而我们则想方设法把它塞到网页中。
从那以后,PHP应用程序开发经历了多次变革。AJAX、PHPUnit、composer和API-First等新兴框架相继涌现出来。
所有框架(包括上面提到的和其他许多框架)都对PHP开发者们开发应用程序的方式产生了影响。现在,如果你使用将PHP和HTML代码混合到一起的方式来编写以分页式设计模式为基础的应用程序,就会受到嘲笑。那么应该怎样开发程序呢?怎样开发新式PHP应用程序和API呢?怎样利用PHP新增的工具开发出速度更快、品质更优、健壮性更高的应用程序呢?我非常赞赏你能够想到并提出这些问题。
我的好朋友Doug Bierer对这些问题做出了回答。他撰写的这本书不是华而不实的大部头著作,不是你买来放在书架上就不会再碰一下的书。你捧在手中的这本书注定会成为你的参考资料库的一部分。
本书不仅像其他编程书籍一样介绍新增功能的理论知识,而且还会介绍使用这些新增功能解决真实问题的实践方法。你不仅可以从本书汲取知识,而且还能够立刻使用学到的知识解决问题。

如果只是简单使用一下PHP中的高级概念,你无须成为PHP专家。然而,如果你想要成长为一名专业的PHP开发者,就必须学习、理解和掌握这些高级概念。本书会帮助你在自己的专业道路上不断前进。

Cal Evans
Nomad PHP开发者群World Wide Herd研究组首席指导

关于作者
在1971年,Doug Bierer使用Dartmouth BASIC(BASIC语言的原始版本)在一台DEC PDP-8型计算机上编写出了自己的第一个程序,从那以后,他就再也无法与计算机分离了。经过一段体验非常丰富的职业生涯历练后,他在1978年成为了专业的合约程序员,此后他一直在使用BASIC、PL/I、汇编、FORTH、C、C++、dBase/FoxBase/Clipper、Pascal、Perl、Java和PHP语言编写应用程序。Doug Bierer会说四种语言,喜欢在世界各地旅游,在法国、荷兰、英格兰、瑞典、苏格兰和泰国都居住过一段时间。他曾经花数年时间从事Linux系统管理和TCP/IP网络工作。他多才多艺,喜欢音乐和小说,写过60多首歌。他有一个笔名叫作Douglas Alan。
Doug Bierer拥有自己的公司(unlikelysource.com),该公司的主营业务包括咨询、PHP程序开发、网站架设和培训(主要面向Zend Technologies和Rogue Wave Software公司的员工)。
Doug Bierer在https://www.lulu.com/上发表过小说The End, And Then? and Further Indications。他在O'Reilly Media出版社出版的计算机科学著作包括Learning PHP and MySQL、Learning PHP Security、Learning MongoDB和Learning Doctrine。

首要的是,我要将这本书献给我的母亲Betty Bierer,她在2016年5月永远离开了我们。她在我的整个生命历程中不断鼓励我,为我的每次进步欢呼鼓掌(不论这些进步多么微小)。她参加了我举办的所有音乐会、购买了我录制的所有CD,而且即便她对计算机科学毫无兴趣,也仍旧阅读了我撰写的所有书。我还要感谢能够与我同甘共苦的妻子Siri,当我因撰写本书而没有时间陪伴她时,她也无怨无悔(不过她也对我声明下不为例)。最后,我要感谢许多PHP社区的活跃人士,他们帮助我迸发出新式思路和灵感。这些人包括:Matthew Weir O'Phinney、Cal Evans、Daryl Wood、Susie Pollock、Salvatore Pappalardo、Slavey Karadzhov和Clark Everetts。

关于审校者
Salvatore Pappalardo是一位技术天才,在2002年成为了一名软件工程师。他喜欢“从零开始”的开发形式。他爱好广泛,除了喜欢研究计算机技术,还喜欢阅读科幻小说,观赏电影和TED演讲。

Vincenzo Provenza是一位网页开发者,具有使用多种技术和编程语言(主要是PHP和JavaScript)的从业经验。他喜欢旅游和读书。
前言
PHP 7以破纪录的速度席卷了开源社区,吸引了许多人的注意力。核心开发团队对这门编程语言做出了很大的改进,但仍然为该语言保留了高度的向下兼容性。这些改进几乎能够为PHP程序提高200%的速度,并能够大幅度地减少内存占用量。从开发的观点看,对命令和统一变量语法(uniform variable syntax)解析方式的改进引入了多种编写代码的新方式,这些方式在以前的 PHP 版本中是无法使用的。同时,如果开发者不了解PHP 7解析命令的方式,就会掉到隐藏的陷阱中,导致程序发生故障。因此,本书的使命是介绍这些新的令人激动的代码编写方式,以及这些新方式与以前的 PHP 版本不兼容的地方。需要着重指出的一点是,本书既介绍PHP 7.0也介绍PHP 7.1。
本书主要内容
第1章介绍入门知识,帮助你安装和配置PHP 7的开发环境。还介绍了几个代表性很强的示例程序,通过它们来展示PHP 7的几个新功能。
第2章深入介绍了这门语言的新增功能,其中包括抽象语法树(Abstract Syntax Tree)和统一变量等语法,还介绍了这些新增功能是怎样对常规编程方式产生影响的。本章还通过几个示例介绍了PHP 7在性能方面的提升,包括在foreach()循环中的大幅度改进。
第3章着重介绍PHP一直拥有的使用程序员定义的函数库(而不是类库)的功能,当然PHP 7也不会例外。本章会详细介绍对函数处理方式的改进,其中包括类型提示(type hint)功能,而且可以将该功能应用于基础数据类型(如整型、浮点型、布尔型和字符型)。还介绍了PHP标准库(Standard PHP Library,SPL)中的许多迭代器,以及利用已改进的生成器自己编写迭代器的方式。
第4章介绍PHP面向对象编程功能的基础知识。快速掌握这些基础知识后,就可以学习使用PHP命名空间和特性(trait)的方式。本章还会介绍需要考虑的软件架构问题,例如怎样以最佳方式使用接口。最后会通过几个实践范例介绍PHP 7令人激动的新增功能:匿名类。
第5章介绍从数据库读取数据和向数据库中写入数据的方式,这是现代网站的关键功能。许多人对PDO(PHP Data Objects,PHP数据对象)扩展的用法有误解,本章会详细介绍PDO扩展,使你不必学习额外命令集就能够编写出能与绝大多数数据库(如MySQL、Oracle、PostgreSQL、IBM DB2和Microsoft SQL Server)进行交互的应用程序。此外,本章还会介绍一些高级技巧,如使用领域模型实体实现嵌入式二次查询,以及使用PHP 7程序实现jQuery DataTable插件查询操作。
第6章详细分析架设交互式网站的PHP开发者们所面对的一个典型问题——通过硬编码方式创建表单,之后又不得不对表单进行维护。本章介绍一种简捷、高效的面向对象处理方式,使用最少量的代码生成全部 HTML 表单,而且可以通过初始配置轻松修改这些表单。PHP开发者会面对的另一个难度不相上下的问题是,怎样过滤和验证用户通过表单提交的数据。通过学习本章,你可以开发出易于配置的过滤器和验证器,它们可应用于任何收到的数据。
第7章介绍在网页开发中变得越来越重要的功能——提供和访问Web服务。本章会介绍两种重要的提供和访问Web服务的方式:SOAP和REST。通过阅读本章,你可以学会实现SOAP和REST客户端与服务器的手段。此外,本章会介绍几个使用适配器设计模式开发的示例程序,这些程序具有非常大的自定义空间,这意味着你不会被局限在特定的设计范式中。
第8章会帮助你应对互联网迅猛的增长势头,让客户能够通过你编写的国际化网页将业务扩展到国际化市场中。本章会介绍所有最新的国际化网页功能,其中包括表情符号的用法、字符绘画和将网页内容翻译成多种语言的手段。本章还会介绍获取和处理用户所在地信息的方式,这些信息包括浏览网页的用户的语言设置、数字和货币格式,以及日期和时间格式。本章会通过一些示例介绍创建国际化日历的方式,该日历可处理反复出现的事件。
第9章介绍当前在开源社区中最火爆的话题——中间件。顾名思义,中间件是一种能够在不更改应用程序源代码的情况下,为已开发出的应用程序增加价值的“嵌入式”软件。本章会通过一系列示例来介绍在遵循PSR-7编程规范(附录详细介绍了PSR-7类)的前提下编写中间件的方式,这些中间件可以执行验证、访问控制、缓存和路由操作。
第10章介绍重要的高级算法。如果有许多程序员和公司竞争同一项业务,那么掌握这些高级算法对你来说就是至关重要的。本章会介绍如何使用PHP 7的理论知识和实用技巧来编写应用程序的读取器和设置器、链表、冒泡排序程序、堆栈和二分查找程序。本章还会介绍使用这些技巧实现搜索引擎和处理多维数组的方式。
第11章介绍面向对象程序设计理论的重要组成部分——软件设计模式。如果没有掌握这些知识,那么在尝试获取新职位或客户时,就会处于劣势地位。本章会介绍多种重要的软件设计模式,其中包括水合器(hydrator)、策略、映射器、对象关联映射和发布/订阅等设计模式。
第12章介绍当前互联网中常见的攻击手段。随着网络攻击事件越来越多,网络攻击造成的经济损失和泄露的私人信息也越来越多。本章会通过一些示例介绍实用技巧,使用这些技巧可以使网站的安全性和保险性成倍增加。本章还会介绍过滤和验证操作、为 PHP 会话提供安全防护的方式、提高表单提交操作安全性的方式、生成具有安全性的密码的技巧,以及使用验证码的手段。此外,本章会通过示例介绍在不使用 PHP 加密扩展库mcrypt的情况下(mcrypt扩展已被PHP 7.1弃用,而且最终会被从该语言中移除),实现加密/解密功能的方式。
第13章介绍可帮助你编写出优质代码的最佳编程习惯和调试技巧。本章还会介绍创建和设置单元测试、处理预料之外的错误和异常,以及创建测试数据的方式。本章也介绍了PHP 7的几个新增功能,其中包括PHP 7解释程序抛出错误的功能和方式。请注意,本书通篇都会介绍最佳编程习惯,而不仅限于这一章!
附录介绍最近被普遍接受的第7号PHP推荐标准,即PSR-7,也可称为PSR-7编程规范,该编程规范定义了与中间件联合使用的接口。本附录介绍实现PSR-7类的可靠方式,这些PSR-7类包括值对象(如URI、流式请求和回应的主体,以及上传文件操作)和代表请求与回应的对象。
做书中实验所需的硬件条件
要做本书中介绍的示例实验,你的计算机需要拥有100MB以上的硬盘可用空间,并安装一个文本或代码编辑器(注意这不是指文字处理软件)。第1章介绍了设置PHP 7开发环境的方式。你可以自己搭建Web服务器,也可以不搭建Web服务器,因为PHP 7解释程序自带了一个在开发环境中使用的Web服务器。是否联网也不做要求,但是如果联网就可以下载代码(如PSR-7接口),以及阅读PHP 7.x的说明文档。
本书面向的读者
软件架构师、技术主管、中高级软件开发者和爱好者都适合阅读本书。在阅读本书之前,你需要先具备PHP程序设计的基础知识(OOP方面的尤为重要)。
本书各章标题结构
本书会反复出现“准备工作”“具体处理过程”“具体运行情况”“补充说明”和“扩展”等标题。
这些标题都用于说明完成示例实验的步骤,下面是它们的具体含义。
准备工作
该标题下方是介绍示例实验的主要内容,以及该实验的初步设置和所有软件设置。
具体处理过程
该标题下方是做示例实验的具体步骤。
具体运行情况
该标题下方是前面具体步骤所介绍代码的详细运行情况。
补充说明
该标题下方是与前面介绍的示例程序有关的补充资料,以便使你进一步了解这些示例程序。
扩展
该标题下方是与前面介绍的示例程序有关的网站链接。
本书约定
本书使用多种字体区分多种类型的信息,下面详细说明这些字体和相应的信息类型。
代码、数据库表的名称、文件夹的名称、文件名、文件的扩展名、目录的名称、虚拟的URL、用户输入的信息和Twitter微博的用户名将使用等宽字体,例如:“将步骤3介绍的LotsProps类添加到独立文件chap_10_oop_using_getters_and_setters_
magic_call.php文件中。”
代码段部分使用等宽字体,例如:
protected static function loadFile($file)
{
if (file_exists($file)) {
require_once $file;
return TRUE;
}
return FALSE;
}
当着重介绍一部分代码时,会使用粗体将其标出,例如:
$params = [
'db' => __DIR__ . '/../data/db/php7cookbook.db.sqlite'
];
$dsn = sprintf('sqlite:' . $params['db']);
在命令行界面中输入和输出的信息使用下面的字体:
cd /path/to/recipes
php -S localhost:8080
新术语和重要词汇使用黑体(中文)或加粗(英文)表示。菜单和对话框中的英文界面词也会加粗,例如:“当Purchases(购物信息)按钮被单击后,初始的购物信息就会显示出来”。


这部分内容介绍警告和需要注意的重要信息。




这部分内容介绍提示和小窍门。



读者服务
轻松注册成为博文视点社区用户(www.broadview.com.cn),扫码直达本书页面。
? 提交勘误:您对书中内容的修改意见可在提交勘误处提交,若被采纳,将获赠博文视点社区积分(在您购买电子书时,积分可用来抵扣相应金额)。
? 交流互动:在页面下方 读者评论 处留下您的疑问或观点,与我们和其他读者一同学习交流。
页面入口:http://www.broadview.com.cn/32772

目录

第1章 基础知识 1
本章主要内容简介 1
安装PHP 7的注意事项 1
内置PHP Web服务器的使用方法 6
定义用于测试的MySQL数据库 7
安装PHPUnit 8
实现类自动加载 9
扫描网站 12
创建深层次的网页扫描器 16
创建将PHP 5代码转换为PHP 7代码的代码转换器 18
第2章 PHP 7中的高效功能 25
本章主要内容简介 25
了解抽象语法树 26
了解语法分析中的差异 30
了解foreach()处理过程中的差异 32
使用PHP 7中的增强功能提高性能 36
遍历含有大量数据的文件 40
将电子表格上传到数据库中 43
递归式目录迭代器 46
第3章 PHP中的函数式编程功能 51
本章主要内容简介 51
开发函数 51
提示数据类型 55
设置函数返回值的数据类型 60
使用迭代器 64
使用生成器编写自己的迭代器 73
第4章 PHP中的面向对象编程功能 77
本章主要内容简介 77
开发类 77
扩展类 85
使用静态属性和方法 93
使用命名空间 97
定义可见性 102
使用接口 106
使用特性 112
实现匿名类 119
第5章 与数据库进行交互 125
本章主要内容简介 125
使用PDO连接数据库 125
创建OOP式的SQL语句生成器 139
处理分页 142
定义与数据库表匹配的实体 147
将实体类的数据类型设置为与RDBMS查询操作匹配的数据类型 152
在查询结果中嵌入二次查询操作 160
实现jQuery DataTables插件的PHP查询 164
第6章 创建可伸缩的网站 169
本章主要内容简介 169
创建通用表单元素生成器 169
创建HTML radio元素生成器 177
创建HTML select元素生成器 181
实现表单工厂 186
关联$_POST过滤器 192
关联$_POST验证器 206
将验证操作与表单关联起来 212
第7章 访问Web服务 219
本章主要内容简介 219
在PHP和XML之间转换 219
创建简单的REST客户端 223
创建简单的REST服务器 234
创建简单的SOAP客户端 243
创建简单的SOAP服务器 247
第8章 使用date/time数据类型和国际化功能 253
本章主要内容简介 253
在查看脚本中使用表情图示或表情符号 253
转换复杂的字符 256
通过浏览器数据获取用户所在地信息 258
根据用户所在地使用适当的格式显示数字 262
根据用户所在地处理货币数据 266
根据用户所在地对日期/时间(date/time)数据类型进行格式化处理 272
创建HTML式的国际化日历生成器 277
创建循环事件生成器 286
在不使用gettext工具集的情况下处理翻译工作 294
第9章 开发中间件 304
本章主要内容简介 304
通过中间件执行验证操作 304
使用中间件实现访问控制 311
使用缓存提高性能 319
实现路由功能 332
实现框架系统间的相互调用 338
使用中间件实现跨编程语言功能 347
第10章 高级算法 351
本章主要内容简介 351
使用读取器和设置器 351
实现链表 358
编写冒泡排序程序 363
实现堆栈 366
创建实现二分查找操作的类 369
实现搜索引擎 373
显示多维数组和累加合计 380
第11章 实现多种软件设计模式 388
本章主要内容简介 388
创建数组至对象水合器(array to object hydrator) 389
创建对象至数组水合器(object to array hydrator) 391
实现策略模式 393
定义映射器 404
实现对象关联映射功能 414
实现发布/订阅设计模式 426
第12章 提高网页的安全性 433
本章主要内容简介 433
过滤通过$_POST变量获得的数据 433
验证通过$_POST变量获得的数据 438
为PHP会话提供安全防护 441
通过令牌提高表单的安全性 448
创建具有较高安全性的密码生成器 454
通过验证码为表单提供安全防护 459
在不使用mcrypt加密扩展库的情况下实现加密/解密功能 474
第13章 最佳编程习惯、测试和调试 480
本章主要内容简介 480
使用特性和接口 480
通用异常处理程序 486
通用错误处理程序 490
编写简单测试 494
编写测试套件 514
生成模拟测试数据 517
使用session_start参数自定义会话 530
附录 定义PSR-7类 535
本附录主要内容简介 535
实现PSR-7值对象类 535
开发PSR-7请求类 556
定义PSR-7回应类 571

读者评论

  • 为什么没有代码的地址呢?我找了好几天都没有找到

    cnjianghu发表于 2017/11/15 23:03:10