零、前言
PHP 语言已经存在了相当长的一段时间了。一开始只是一套简陋的脚本,很快就变成了一种强大的脚本语言。各种框架和平台的兴起为许多开发人员铺平了道路。随着时间的推移,PHP 编码标准和众多测试解决方案层出不穷。这些都使它有了今天坚实的企业立足点。
最新的 PHP7.1 版本从语言语法和整体性能角度带来了巨大的改进。现在是深入研究 PHP 的最佳时机。
在本书中,我们将涵盖广泛的主题。乍一看,这些似乎是随机的,但它们反映了 PHP 开发人员目前所需具备的最低技能水平。
这本书涵盖的内容
第一章全新 PHP讲述了 PHP7.1 语言引入的最新变化,其中大部分直接提高了编写代码的质量和优雅度。
第 2 章拥抱标准,向您介绍 PHP 生态系统中的重要标准。呈现的标准会影响代码的质量和优雅度,使 ypu 更接近真正掌握 PHP。
第 3 章错误处理和日志记录强调了健壮的错误处理和有效日志记录的重要性。您将学习如何处理错误和记录真正重要的信息——这两个原则在日常 PHP 编码中通常缺乏适当的注意。
第 4 章、魔术方法背后的魔法讨论了 PHP 类中可用的魔法函数,以及它们的美丽和重要性。您将通过实际示例学习每一种 PHP 魔术方法及其含义和用法。
第 5 章CLI 领域探讨了命令行 PHP 及其工具和流程。您将学习如何使用 Symfony 的控制台组件、处理输入/输出流以及处理流程。
第 6 章突出的 OOP 功能介绍了将 PHP 转变为强大的 OOP 语言的一系列功能。您将学习 PHP OOP 特性背后的重要概念,其中一部分可能会脱离日常代码库,因为它们更多地用作各种框架的构建块。
第 7 章高性能优化讲述了性能优化的重要性,并提供了实践解决方案。您将了解 PHP 性能优化的详细信息,其中微小的配置更改可能会影响整个应用程序的性能。
第 8 章进入无服务器,概述了 PHP 的使用及其在无服务器基础设施中的使用。您将深入了解新兴的无服务器体系结构,并通过市场上两个主要的 PaaS(平台即服务)解决方案利用它。
第 9 章反应式编程介绍了进入 PHP 生态系统的新兴反应式编程范式。您将学习反应式编程的基本原理,使用同步编码技术通过 icicle 编写异步代码,icicle 是目前生态系统中最主要的库之一。
第 10 章常见设计模式重点介绍设计模式的子集,以及 PHP 编程中最常用的设计模式。您将学习几个重要设计模式的实际实现,这反过来将产生更优雅、可读、可管理和可测试的代码。
第 11 章、楼宇服务将带您了解 REST、SOAP 和 RPC 风格的服务,以及微服务架构。您将学习如何创建 SOAP 和 REST web 服务器,以及它们各自的客户机对应项。
第 12 章使用数据库解释了 PHP 程序员需要与之交互的几种类型的数据库,如事务 SQL、NoSQL、key value 和搜索数据库。您将学习如何查询 MySQL、Mongo 和 Redis 数据库。
第 13 章解决依赖性探讨了依赖性问题及其解决方法。您将学习如何使用依赖项注入和依赖项容器技术解决依赖项问题。
第 14 章使用软件包,介绍了 PHP 软件包周围的生态系统及其创建和分发。您将学习如何查找和使用第三方软件包来丰富应用程序,并快速了解如何创建和分发自己的软件包。
第 15 章测试重要位,深入到几种类型的测试中,强调其中一种可能比另一种更重要。您将学习为 PHP web 应用程序执行的几种最常见的测试类型。
第 16 章调试、跟踪和评测向您介绍了调试、跟踪和评测 PHP 应用程序的最常用工具。您将学习如何利用多种工具实现应用程序的有效调试、跟踪和分析。
第 17 章托管、资源调配和部署讨论了为托管应用程序做出明智的决策,以及适当的资源调配、部署和持续集成过程。您将了解托管解决方案和将代码从本地机器自动获取到生产机器的过程之间的区别。
这本书你需要什么
在本书中,有许多简单且自包含的代码和配置示例。为了成功地运行这些,我们可以轻松地使用 Ubuntu 驱动的桌面(https://www.ubuntu.com/desktop 和服务器(https://www.ubuntu.com/server 机器。使用 Windows 或 OSX 机器的用户可以在 VirtualBox 中轻松安装 Ubuntu。VirtualBox 的安装说明可在 VirtualBox 官方页面(上找到 https://www.virtualbox.org/ )。
这本书是给谁的
目标读者被假定为中级 PHP 开发人员。这本书将带你踏上成为 PHP 大师的旅程。PHP 的扎实知识涉及基本语法、类型、变量、常量、表达式、运算符、控制结构和函数等领域。
习俗
在本书中,您将发现许多文本样式可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。
文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄如下所示:“对象可能使用 PHPSerializable
接口、__sleep()
或__wakeup()
魔术方法。”
代码块设置如下:
interface RequestInterface extends MessageInterface
{
public function getRequestTarget();
public function withRequestTarget($requestTarget);
}
任何命令行输入或输出的编写方式如下:
php index.php
serverless invoke local --function hello
新术语和重要词语以粗体显示。您在屏幕上(例如,在菜单或对话框中)看到的单词会出现在文本中,如下所示:“我们首先单击 Iron.io 仪表板下的“新建项目”按钮。”
Warnings or important notes appear in a box like this. Tips and tricks appear like this.
读者反馈
我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢还是不喜欢。读者反馈对我们来说很重要,因为它可以帮助我们开发出您将真正从中获得最大收益的标题。
要向我们发送总体反馈,只需发送电子邮件feedback@packtpub.com
,并在邮件主题中提及该书的标题。
如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南www.packtpub.com/authors。
客户支持
既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。
下载示例代码
您可以从您的帐户下载本书的示例代码文件 http://www.packtpub.com 。如果您在其他地方购买了本书,您可以访问http://www.packtpub.com/support 并注册,将文件直接通过电子邮件发送给您。
您可以通过以下步骤下载代码文件:
- 使用您的电子邮件地址和密码登录或注册我们的网站。
- 将鼠标指针悬停在顶部的“支持”选项卡上。
- 点击代码下载和勘误表。
- 在搜索框中输入图书的名称。
- 选择要下载代码文件的书籍。
- 从您购买本书的下拉菜单中选择。
- 点击代码下载。
下载文件后,请确保使用以下最新版本解压或解压缩文件夹:
- WinRAR/7-Zip for Windows
- 适用于 Mac 的 Zipeg/iZip/UnRarX
- 适用于 Linux 的 7-Zip/PeaZip
该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Mastering-PHP-7 。我们在上还提供了丰富的书籍和视频目录中的其他代码包 https://github.com/PacktPublishing/ 。看看他们!
勘误表
虽然我们已尽一切努力确保内容的准确性,但错误确实会发生。如果您在我们的一本书中发现错误,可能是文本或代码中的错误,如果您能向我们报告,我们将不胜感激。通过这样做,您可以使其他读者免于沮丧,并帮助我们改进本书的后续版本。如果您发现任何错误,请访问进行报告 http://www.packtpub.com/submit-errata ,选择您的书籍,点击勘误表提交表单链接,然后输入勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上载到我们的网站或添加到该标题勘误表部分下的任何现有勘误表列表中。
要查看之前提交的勘误表,请转至https://www.packtpub.com/books/content/support 并在搜索字段中输入图书名称。所需信息将出现在勘误表部分下。
盗版行为
在互联网上盗版版权材料是所有媒体都面临的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上发现任何形式的非法复制品,请立即向我们提供地址或网站名称,以便我们采取补救措施。
请致电copyright@packtpub.com
与我们联系,并提供可疑盗版材料的链接。
我们感谢您在保护我们的作者方面提供的帮助以及我们为您带来有价值内容的能力。
问题
如果您对本书的任何方面有任何问题,可以通过questions@packtpub.com
与我们联系,我们将尽力解决该问题。
版权属于:月萌API www.moonapi.com,转载请注明出处