猜你喜欢
高性能PHP7

高性能PHP7

书籍作者:Altaf Hussain ISBN:9787121309380
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:5251
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

  《高性能PHP 7》从PHP所需环境讲起,涉及环境搭建与配置设置等内容,能够帮助有一定计算机基础的读者实现PHP运行环境的搭建及PHP周边软件的安装配置。《高性能PHP 7》亮点内容是介绍PHP 7特性的部分,同时也告诉读者哪些语法将会被废弃,对读者上手PHP 7有极大的帮助。除介绍PHP 7的新特性外,《高性能PHP 7》用大量章节介绍如何使用PHP 7及周边软件来构造高性能的Web应用程序,同时介绍了一些PHP开发的zui佳实践,帮助读者更好地理解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。

  关于审校者

  Raul Mesa Ros自2006年以来便一直从事与Web开发相关的工作,他之前做Java相关工作,后来转投PHP领域,并获得了一些资格认证,例如Zend官方授予的ZCE、ZFC。在积累了几个大流量的Web项目开发经验后,Raul现在对DevOps的理念很感兴趣。

  Raul目前是EuroMillions.com的高级Web开发工程师,使用DevOps和PHP技术,同时作为负责人还带领着多个中小型项目。

  Raul的Twitter是@rmrbest。

  译者:吕毅,链家网大数据平台架构团队负责人,链家网架构师。曾负责过链家网基础服务平台建设,也曾供职于百度移动云事业部及新浪平台架构部SAE。


编辑推荐

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

前言

  译者序

  我从本科二年级开始,就使用PHP开发一些项目,那时PHP 5才刚刚在国内被运用起来。记得那时使用PHP开发项目,由于没有遇到高并发大流量的场景,所以也算得心应手。直到毕业后在新浪平台架构部工作时,因为开发一些平台项目会遇到被多个项目调用的情况,所以PHP性能低下的问题便被突显出来。从那时开始,我在做基本开发工作的同时,也会关注代码质量与运行性能。当时PHP的优化手段更多的是通过优化自身代码来尽量避免糟糕代码的出现。后来在百度工作期间,我们的一个模块在一天内会被请求20亿次(现在也许更高),因为移动业务发展迅猛,流量涨得很快,PHP项目的性能缺陷愈加被放大,所以那时便开始使用一些工具(例如xhprof)去细化问题,在优化代码、调整架构的同时,关注上下游性能、网络开销等PHP项目周边的调整。虽然通过各种努力能够在当时正常承载线上业务,但性能低下问题依然是一个很大的困扰。

  在我入职链家网的前后,PHP社区预发布了全新的PHP 7版本。在PHP 7正式发布后,链家网的PHP工程师们考虑到有鸟哥坐镇链家网,于是在第一时间升级了线上PHP 7环境,在不用做太多框架和代码调整的情况下,大幅降低了整体的线上机器负载。PHP 7版本在性能方面的调整,让传统PHP Web项目能够轻松获得整体的性能提升。记得鸟哥分享过不少能够实现负载减轻一半以上的公司案例,相信随着越来越多的公司、用户使用PHP 7,这样的案例会越来越多。随着PHP开发人员的不断努力,PHP工程师会更专注业务场景而不必再多操心性能问题。

  本次与博文视点合作,我们有着共同的目标——将PHP 7的新特性、运用方法更快地传递给中国的PHP工程师们。因此特在博文视点张春雨先生的邀请下,决定尽快用工作之余的时间将本书翻译完成并推广上市。由于我的个人精力实在有限,因此邀请了链家网同事祁冰、左晓杰与我一同翻译此书,本书的第4、5、6章由祁冰翻译,第7章及附录由左晓杰翻译,其余部分由我翻译。若是让读者在阅读时感到口吻不一致,还望包涵。

  本书作者在PHP 7发布的第一时间撰写了此书,内容包括环境搭建、软件安装、PHP 7新特性、PHP与数据优化、性能测试等多个方面,并且也提到了PHPzui佳实践,以及一些工具、框架的使用,非常适合有一定PHP基础的工程师们阅读。即便你不是PHP工程师,只要有一定的计算机基础,相信你也能够通过认真阅读此书并加以实践来掌握PHP开发与优化技术,获得PHP 7相关的技术理解。全书通俗易懂且图文并茂,实践案例丰富,相信一定能够吸引读者阅读。同时,本书目标清晰,全书都在围绕如何使用PHP及周边技术来优化性能、缩短用户等待时间这一主题。如果你的业务场景对程序性能、等待时间有一定要求,那么千万不要错过此书。

  再次感谢祁冰、左晓杰在本书翻译过程中付出的努力!因为我们一同充任链家网的技术支撑角色,非常了解彼此的甘苦。链家网发展迅速,技术需求不断,大家日常工作量都很饱和,基本都是深夜或假期时抽空翻译,这份对技术分享的热情实属难得!同时,我必须感谢我的家人给予的支持、鼓励,特别感谢我的爱人,因为她的更多承担才让我有时间和精力完成此事。当然,如原著作者所说,我们都应该感谢PHP社区开发人员做出的努力,他们为PHP工程师们提供了更好的开发语言,在解决了我们痛点的同时还为未来提供了更多的可能!谢谢!

  吕毅

  链家网平台架

目录

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

太空飞船操作符() 35

null合并运算符(??) 37

统一变量语法 39

其他特性和变更 40

常量数组 40

Switch中的多个default默认值 41

Session_start函数中的选项数组 41

Unserialize函数引入过滤器 42

本章小结 42

3 PHP 7应用性能提升 43

Nginx与Apache 43

Apache 44

Nginx 44

HTTP Server优化 45

缓存静态文件 45

HTTP持久链接 46

Apache 47

Nginx 48

GZIP压缩 48

PHP独立部署服务 51

关闭不用的模块 51

Web服务器资源 53

内容分发网络(CDN) 54

使用CDN 55

CSS与JavaScript优化 56

合并 57

缩小 57

全页缓存 66

Varnish 66

基础设施 69

Web服务器 70

数据库服务器 71

负载均衡(LB) 71

HAProxy负载均衡 72

本章小结 76

4 提升数据库性能 77

MySQL数据库 77

查询缓存(Query Caching) 78

存储引擎 79

MyISAM存储引擎 80

InnoDB存储引擎 81

Percona Server - MySQL的fork 82

安装Percona服务器 82

MySQL性能监控工具 83

phpMyAdmin 83

MySQL工作台 86

Percona工具箱 87

Percona XtraDB 集群(PXC) 90

Redis 键值缓存存储 93

连接Redis服务器 95

用Redis保存和获取数据 96

Redis管理工具 97

Memcached键值缓存存储 99

本章小结 100

5 调试和分析 101

Xdebug 101

使用Sublime Text调试 103

使用Eclipse调试 107

使用Xdebug分析 110

PHP DebugBar 112

本章小结 116

6 PHP应用的压力/负载测试 117

Apache JMeter 117

ApacheBench (ab) 124

Siege 125

实际项目中应用程序的压力测试 128

Magento 2 129

WordPress 4 130

Drupal 8 130

本章小结 132

7 PHP编程最佳实践 133

代码风格 133

测试驱动开发(TDD) 137

设计模式 140

面向服务的体系架构(SOA) 141

保持面向对象和可重用 142

PHP框架 142

版本控制系统(VCS)和Git 142

部署和持续集成(CI) 143

本章小结 144

附录A 提升工作效率的工具 147

Composer:PHP依赖管理工具 147

安装Composer 147

使用Composer 148

Git:一个版本控制系统 150

安装Git 150

使用Git 150

创建新分支和合并 152

克隆一个仓库 153

Webhooks 154

管理仓库的桌面工具 155

Grunt watch 157

小结 160

附录B MVC和框架 161

MVC设计模式 161

Model 162

Views 162

Controllers 163

Laravel 163

安装 163

特性 164

Eloquent ORM 166

Artisan命令行 169

迁移 170

Blade模版 172

其他特性 175

Lumen 175

Apigility 175

小结 181

短评

不要被书的效果图蒙蔽,只是薄薄的181页,读起来轻松,其中几处明显的文字和符号错误,虽然书中没有讲解php7如何提高性能的,但对httpweb/apache/nginx/mysql/redis/memcached简单的性能优化讲解还是很适用。

2017-03-20

PHP7

2017-02-23

标签
PHP