零、序言

PHP 是开发 web 应用程序的优秀语言。它本质上是一种服务器端脚本语言,也用于通用编程。PHP7 是最新版本,它提供了主要的向后兼容性中断,并着重于提供改进的性能和速度。随着对高性能需求的增加,此最新版本包含构建高效应用程序所需的一切。PHP7 提供了改进的引擎执行、更好的内存使用和更好的工具集,允许您通过多线程 web 服务器使用低成本硬件和服务器在网站上维持高流量。

这本书涵盖的内容

第一章创建一个用户档案系统,使用空合并操作符,我们将发现新的 PHP7 功能,并构建用于存储用户档案的应用程序。

第 2 章构建一个数据库类和简单购物车,我们将创建一个简单的数据库层库,帮助我们访问我们的数据库。我们将介绍一些使查询安全的技巧,以及如何使用 PHP7 使编码更简单、更简洁。

第三章建立社交新闻稿服务,我们将建立一个社交新闻稿服务,用户可以通过社交登录登录并注册到新闻稿。我们还将制作一个简单的管理系统来管理新闻稿。

第 4 章使用 Elasticsearch构建一个具有搜索功能的简单博客,您将学习如何创建博客系统、尝试 Elasticsearch 以及如何在代码中应用它。此外,您还将学习如何创建一个简单的博客应用程序并将数据存储到 MySQL 中。

第 5 章创建 RESTful Web 服务向您展示了如何创建可用于管理用户配置文件的 RESTful Web 服务。该服务将使用 Slim 微框架实现,并使用 MongoDB 数据库进行持久化。本章还介绍了 RESTfulWeb 服务的基础知识,最重要的是常见的 HTTP 请求和响应方法、PSR-7 标准和 PHP7 的新 mongodb 扩展

第 6 章构建聊天应用描述了使用 WebSocket 实现实时聊天应用。您将学习如何使用 Ratchet 框架使用 PHP 构建独立的 WebSocket 和 HTTP 服务器,以及如何在 JavaScript 客户端应用程序中连接到 WebSocket 服务器。我们还将讨论如何为 WebSocket 应用程序实现身份验证,以及如何在生产环境中部署它们

第 7 章构建异步微服务架构介绍了(小型)微服务架构的实现。在本章中,您将使用 ZeroMQ 进行网络通信,而不是 RESTful web 服务,这是一种侧重于异步性、松耦合和高性能的替代通信协议

第 8 章为自定义语言构建解析器和解释器,描述如何使用 PHP-PEG 库定义语法并实现自定义表达式语言的解析器,该语言可用于向企业应用程序添加最终用户开发功能。

第 9 章PHP中的被动扩展,这里我们将研究 PHP 的被动扩展库,并尝试构建一个简单的定时应用程序。

这本书你需要什么

您需要从 PHP 官方网站下载并安装 PHP7。您还需要安装一个 Web 服务器,如 Apache 或 Nginx,默认情况下配置为运行 PHP7。

如果您对虚拟机有经验,还可以使用 Docker 容器和/或 Vagrant 构建安装了 PHP7 的环境。

这本书是给谁的

本书面向 web 开发人员、PHP 顾问以及使用 PHP 从事多个项目的任何人。假设具备 PHP 编程的基本知识。

公约

在本书中,您将发现许多文本样式可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。

文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄如下所示:“让我们创建一个简单的UserProfile类。”

代码块设置如下:

function fetch_one($id) { 
  $link = mysqli_connect(''); 
  $query = "SELECT * from ". $this->table . " WHERE `id` =' " .  $id "'"; 
  $results = mysqli_query($link, $query); 
}

当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:

'credit_card' => $credit_card, 
'items' => //<all the items and prices>//, 
'total' => $total,

任何命令行输入或输出的编写方式如下:

 mysql> source insert_profiles.sql

新术语重要词语以粗体显示。您在屏幕上看到的词语,例如在菜单或对话框中,出现在文本中,如下所示:“只需单击允许访问,然后单击确定

警告或重要注释显示在这样的框中。

提示

提示和技巧如下所示。

读者反馈

我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢还是不喜欢。读者反馈对我们来说很重要,因为它可以帮助我们开发出您将真正从中获得最大收益的标题。

要向我们发送一般反馈,只需发送电子邮件 feedback@packtpub.com,并在邮件主题中提及该书的标题。

如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南www.packtpub.com/authors

客户支持

既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。

下载示例代码

您可以从您的帐户下载本书的示例代码文件 http://www.packtpub.com 。如果您在其他地方购买了本书,您可以访问http://www.packtpub.com/support 并注册,将文件直接通过电子邮件发送给您。

您可以通过以下步骤下载代码文件:

  1. 使用您的电子邮件地址和密码登录或注册我们的网站。
  2. 将鼠标指针悬停在顶部的支架选项卡上。
  3. 点击代码下载&勘误表
  4. 搜索框中输入图书名称。
  5. 选择要下载代码文件的书籍。
  6. 从您购买本书的下拉菜单中选择。
  7. 点击代码下载

您也可以通过点击 Packt 出版网站上该书网页上的代码文件按钮下载代码文件。在搜索框中输入图书名称即可访问此页面。请注意,您需要登录到您的 Packt 帐户。

下载文件后,请确保使用以下最新版本解压或解压缩文件夹:

  • WinRAR/7-Zip for Windows
  • 适用于 Mac 的 Zipeg/iZip/UnRarX
  • 适用于 Linux 的 7-Zip/PeaZip

该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/PHP-7-Programming-Blueprints 。我们在上还提供了丰富的书籍和视频目录中的其他代码包 https://github.com/PacktPublishing/ 。看看他们!

下载本书彩色图片

我们还为您提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。彩色图像将帮助您更好地了解输出中的更改。您可以从下载此文件 https://www.packtpub.com/sites/default/files/downloads/PHP7ProgrammingBlueprints_ColorImages.pdf

勘误表

虽然我们已尽一切努力确保内容的准确性,但错误确实会发生。如果您在我们的一本书中发现错误,可能是文本或代码中的错误,如果您能向我们报告,我们将不胜感激。通过这样做,您可以使其他读者免于沮丧,并帮助我们改进本书的后续版本。如果您发现任何错误,请访问进行报告 http://www.packtpub.com/submit-errata ,选择您的书籍,点击勘误表提交表链接,输入您勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上载到我们的网站或添加到该标题勘误表部分下的任何现有勘误表列表中。

要查看之前提交的勘误表,请转至https://www.packtpub.com/books/content/support 并在搜索字段中输入图书名称。所需信息将出现在勘误表部分下。

盗版

在互联网上盗版版权材料是所有媒体都面临的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上发现任何形式的非法复制品,请立即向我们提供地址或网站名称,以便我们采取补救措施。

请联系我们 copyright@packtpub.com 与怀疑盗版材料的链接。

我们感谢您在保护我们的作者方面提供的帮助以及我们为您带来有价值内容的能力。

问题

如果您对本书的任何方面有疑问,请联系我们 questions@packtpub.com,我们会尽力解决这个问题。