前言
几十年来,PHP 社区面临着一个巨大的问题:性能。无论硬件多么强大,PHP 最终还是成为瓶颈。随着 PHP 5.4.x、5.5.x 和 5.6.x,PHP 的性能开始得到改善,但在高负载应用程序中仍然是个大问题。社区开发了一些缓存工具,如 Alternative PHP Cache (APC) 和 Zend OpCache,这些工具可以缓存操作码以提高性能。
为了解决 PHP 的性能问题,Facebook 开发了自己的开源工具 HHVM(HipHop Virtual Machine)。据其官方网站介绍,HHVM 使用及时编译(JIT)技术,在保持 PHP 所提供的开发灵活性的同时,实现了卓越的性能。与 PHP 相比,HHVM 性能卓越,被广泛应用于 Magento 等重型应用程序的生产中。
PHP 使用 PHP 下一代(PHPNG)与 HHVM 开战。PHPNG 的整个目的是提高性能,重点是重写和优化 Zend 引擎的内存分配和 PHP 数据类型。世界各地的人们开始对 PHPNG 和 HHVM 进行基准测试,结果表明 PHPNG 的性能优于 HHVM。
最后,PHPNG 与 PHP 的主分支合并,经过大量的优化和彻底的重写,PHP 7 发布了,性能得到了巨大的提升。PHP 7 仍然不是 JIT,但其性能非常出色,与 HHVM 不相上下。与旧版本的 PHP 相比,性能有了巨大的提升。
章节简介
第 1 章 设置环境,介绍如何设置不同的开发环境,包括在 Windows 上安装 NGINX、PHP 7 和 Percona Server,在不同的 Linux 发行版上安装,以及为开发目的设置 Vagrant 虚拟机。
第 2 章 PHP 7 中的新功能,涵盖 PHP 7 中引入的主要新功能,包括类型提示、组使用声明、匿名类和新操作符,如 Spaceship 操作符、Null Coalesce 操作符和统一变量语法。
第 3 章 提高 PHP 7 应用程序的性能,介绍了提高和扩展 PHP 7 应用程序性能的不同技术。在本章中,我们将介绍对 NGINX 和 Apache、CDN 以及 CSS/JavaScript 的优化,例如合并和最小化它们、全页面缓存以及安装和配置 Varnish。最后,我们将讨论应用程序开发的理想基础架构设置。
第 4 章 提高数据库性能,介绍了优化 MySQL 和 Percona 服务器配置以实现高性能的技术。此外,本章还介绍了监控数据库性能的不同工具。本章还介绍了用于缓存对象的 Memcached 和 Redis。
第 5 章 调试和剖析,介绍调试和剖析技术,包括使用 Xdebug 进行调试和剖析、使用 Sublime Text 3 和 Eclipse 进行调试,以及 PHP DebugBar。
第 6 章 PHP 应用程序压力/负载测试,包括对应用程序进行压力和负载测试的不同工具。它包括用于负载测试的 Apache JMeter、ApacheBench 和 Siege。它还包括如何在 PHP 7 和 PHP 5.6 上对 Magento、Drupal 和 WordPress 等不同的开源系统进行负载测试,并比较它们在 PHP 7 和 PHP 5.6 上的性能。
第 7 章 PHP 编程的最佳实践,介绍了一些编写高质量标准代码的最佳实践。内容包括编码风格、设计模式、面向服务的架构、测试驱动开发、Git 和部署。
附录 A 让生活更轻松的工具,更详细地讨论了其中三种工具。我们将讨论的工具是 Composer、Git 和 Grunt watch。
附录 B MVC 和框架,介绍了 MVC 设计模式和 PHP 开发中最常用的框架,包括 Laravel、Lumen 和 Apigility。