首页 存档 技术 查看内容

今日好书丨《高性能PHP 7》

2018-3-30 13:00 |来自: 互联网 358 0

摘要: 《高性能PHP 7》 首著问世 宇宙至强语言迎来重大版本升级 【巴基斯坦】Altaf Hussain 著 吕毅 译 2017年4月出版 小编推荐:本书通俗易懂且图文并茂,实践案例丰富,相信一定能吸引大家阅读。全书目标清晰,始终围绕 ...

《高性能PHP 7

首著问世

宇宙至强语言迎来重大版本升级

【巴基斯坦】Altaf Hussain 著

吕毅 译

2017年4月出版

小编推荐:本书通俗易懂且图文并茂,实践案例丰富,相信一定能吸引大家阅读。全书目标清晰,始终围绕着如何使用PHP及周边技术来优化性能这一主题,能够为许多工程师解决实际问题。

  • 下方评论区留下对此书的想法,选取一名幸运同学将赠此书,3月27日公布获奖用户。

内容提要

本书从PHP所需环境讲起,涉及环境搭建与配置设置等内容,能够帮助有一定计算机基础的读者实现PHP运行环境的搭建及PHP周边软件的安装配置。本书亮点内容是介绍PHP 7特性的部分,同时也告诉读者哪些语法将会被废弃,对读者上手PHP 7有极大的帮助。除介绍PHP 7的新特性外,本书用大量章节介绍如何使用PHP 7及周边软件来构造高性能的Web应用程序,同时介绍了一些PHP开发的最佳实践,帮助读者更好地理解Web项目与PHP应用程序开发。附录部分为读者介绍了一些不错的工具,讲解了MVC与开发框架等周边知识,能够帮助读者更好地开发PHP项目。


作者简介
  • 阿尔塔夫侯赛因(Altaf Hussain)

一位在PHP领域具有6年以上经验的全栈工程师及移动应用开发者,他在巴基斯坦获得电气工程学士学位,其间专攻计算机和通信,兼具电气工程师的理论知识与软件工程师的内涵。

Altaf曾在团队中担任系统工程师,使用汇编语言与C语言为测试机器人开发系统控制软件,之后他对Web技术非常感兴趣,并自此投身Web领域。Altaf曾在工作中使用过许多PHP框架,例如Zend、Laravel、Yii,同时他也使用过不少开源项目,例如Drupal、WordPress、PrestaShop和Magento。Altaf自主设计并实现了两套CMS系统,实现了多语言支持、全线控制、翻译能力以及不同种类的多语言内容管理。现如今,Altaf是一家时尚企业shy7lo.com的技术主管,工作职责是管理公司内部与国外的研发团队,进而落实Magento和Laravel应用程序的开发与部署工作。除了Web应用程序外,Altaf还开发过iOS、Android应用程序,例如在Lumen构建API。Altaf是面向服务架构(SOA)的狂热爱好者,并成功地在多个项目中使用它。

Altaf非常关注Web性能,并在高速发展与可扩展的生产环境中运用了最新的技术,如PHP 7、Nginx、Redis、Varnish等。他是Debian系统的爱好者,并已将其应用于所有Web应用程序的运行环境中。

工作之余,Altaf喜欢写写文章,他的文章大多发表于programmingtunes.com和techyocean.com上。与此同时,Altaf已经撰写了几本由Packt出版的书,包括Learning Phalcon PHP、Mastering jQuery Mobile、PrestaShop Module Development。


本书前言

近些年来,PHP社区始终面临一个巨大问题:性能。在性能问题上,无论使用多么强悍的机器,PHP都会存在一定的瓶颈。在PHP 5.4、PHP 5.5、PHP 5.6版本中,性能开始有所提升,但在高并发的场景下PHP依然会暴露出性能低下的问题。PHP社区开发了一些像Alternative PHP Cache(APC)、Zend OpCache这样的缓存工具,希望借此缓存opcode以达到更高性能,这个做法的确在一些场景下起到了作用。

为了解决PHP的性能问题,Facebook开发并开源了他们的内部项目HipHop Virtual Machine(HHVM)。如HHVM官网介绍,它通过使用即时编译(JIT)在保持了灵活开发的同时显著提升了PHP性能。HHVM相比于PHP有很大的性能提升,从而被广泛应用到如Magento这样的生产环境中。

PHP曾希望通过PHP Next Generation(PHPNG)来与HHVM抗衡,PHPNG项目主要通过重写和优化Zend引擎内存管理以及PHP数据格式来提升性能,这也成为PHPNG的核心目标。全球的工程师都开始积极对比PHPNG与HHVM,并且结果表明,PHPNG性能优于HHVM。

最后,在PHP主干中融入了PHPNG以及一系列的优化与重写后,PHP 7正式发布并带来了重大的性能提升。PHP 7依然没有采用JIT方案,但其性能绝佳,与使用JIT技术的HHVM差异很小。这个版本从性能上相对于从前的历史版本具有非常大的进步。

本书内容

第1章,搭建环境。介绍如何搭建不同的开发环境,其中包括Nginx、PHP 7、运行在Windows上的Percona Server、多种的Linux发行版,以及安装Vagrant虚拟机。

第2章,PHP 7的新特性。介绍众多PHP 7中引入的新特性,例如类型提示、使用use集体声明、匿名类、统一的变量语法、新的操作符。新的操作符有组合比较符、Null合并运算符等。

第3章,PHP 7应用性能提升。介绍如何用不同的技术提升和扩展PHP 7应用的性能。在这章,我们采用合并与精简内容、全页缓存、安装并配置Varnish等手段来优化Nginx和Apache、CDN、CSS、JavaScript。最后,介绍了一个巧妙的方法构建应用开发环境。

第4章,提升数据库性能。内容包括如何优化MySQL性能以及如何配置出高性能的Percona Server,同时也会介绍多种用来监控数据库性能的工具。数据库部分的内容包含了如何优化Memcached与Redis缓存数据。

第5章,调试和分析。介绍如何定位与分析性能问题,包括如何使用Xdebug、Sublime Text3、Eclipse、PHP DebugBar定位性能问题并分析性能数据。

第6章,PHP应用的压力/负载测试。介绍如何使用不同工具进行压力、负载测试。其中包括Apache JMeter、ApacheBench和Siege测试负载情况,并会以一些开源PHP项目(Magento、Drupal、Wordpress)为例,分别在PHP 7与PHP 5.6的环境中进行负载测试并加以对比。

第7章,PHP编程最佳实践。介绍一个生产高质量编码的最佳实践案例。包含了编码规范、设计模式、面向服务架构、测试驱动开发、Git和部署等。

附录A,提升开发效率的工具。介绍Composer、Git和Grunt watch这三个工具的更多细节。

附录B,MVC和框架。介绍MVC设计模式与一些最为流行的PHP开发框架,例如Laravel、Lumen、Apigility。

阅读准备

本书将涉及下面这些软件,你需要有一台能够兼容它们最新版本的设备。

操作系统:Debian或Ubuntu。

软件:Nginx、PHP 7、MySQL、PerconaDB、Redis、Memcached、Xdebug、Apache JMeter、ApacheBench、Siege和Git。

目标读者

本书适合具有一定PHP编程基础的人。如果你更加关注应用性能,那么这本书将非常适合你!

排版约定

在本书中,根据内容的不同将采用各种不同的文字风格。下面举例介绍它们的样式与含义。

文本代码、数据库表名、文件夹名、文件名、文件后缀、路径名、伪URL地址、用户输入以及Twitter路径,会以下列方式展示给读者:“我们可以通过include关键字来表示包含其他的内容。”

代码块将会以如下形式显示。

location ~ \.php$ {

fastcgi_pass 127.0.0.1:9000;

fastcgi_param SCRIPT_FILENAME complete_path_webroot_

folder$fastcgi_script_name;

include fastcgi_params;

}

当需要读者注意代码中的某些部分时,对应的关键信息将加粗表示。

server {

...

...

root html;

index index.php index.html index.htm;

...

所有命令行的输入与输出都会显示如下。

php-cgi b 127.0.0.1:9000

新术语和重点词会加粗显示。例如菜单栏和对话框中的文本,会以下面的形式显示:“点击Next按钮进入下一个窗口。”

读者反馈

读者反馈是非常珍贵的内容,我们一直关注并且欢迎。请让我们知道你是否喜欢本书,我们期望得到反馈,你的反馈能够促使我们进步。

反馈方式:向[email protected]发送邮件,注明书名与你的反馈内容。

如果你在某个领域有一定的经验并对写书感兴趣,那么请关注我们官网上的作者指南http://www.broadview.com.cn/support/4。

代码下载

你可以下载所有已购买的博文视点书籍的相关资源,链接为http://www.broadview. com.cn/30938。

勘误提交

虽然我们已经很谨慎地来保证书籍内容的准确性,但错误仍然可能存在。如果你在某本书中发现错误无论是正文还是代码中的错误请告诉我们,我们都将不胜感激。这样,你不仅帮助了其他读者,也帮助我们改进了后续版本。如果发现任何勘误,可以在博文视点网站相应图书的页面提交勘误信息。一旦你找到的错误被证实,提交的信息就会被接受,我们的网站上也会发布这些勘误信息。你可以随时浏览图书页面,查看已发布的勘误信息。


本书目录

1 搭建环境 1

搭建Windows环境 2

搭建Debian或Ubuntu环境 4

Debian 5

Ubuntu 5

搭建CentOS环境 9

安装Nginx 10

安装PHP 7 11

安装Percona Server 13

搭建Vagrant环境 14

本章小结 16


2 PHP 7新特性 17

OOP特性 17

类型声明 18

命名空间与use关键字批量声明 22

匿名类 27

不推荐使用老式的构造方法 32

Throwable接口 33

新的操作符 35

太空飞船操作符(

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部