产品特色
编辑推荐
作者拥有15年研发经验,资深PHP专家和架构师,曾担任赶集网和今日头条技术总监,好乐买和正和岛的CTo 围绕高性能、可扩展性、可伸缩性、可靠性等与PHP应用性能相关的主题展开,同时还涉及PHP编程思想、底层原理、编程技巧、开发规范等重要内容
内容简介
本书以“PHP与MySQL高性能应用开发”为主题,选取了其中为核心的佳实践进行讲解,是一个有十余年PHP开发经验的老程序员的经验总结。首先从语言层面总结了PHP编程中的一些疑点和难点,然后重点讲解了PHP的缓冲、网络编程、缓存技术、命令行、调试、测试、用户验证策略、代码重构等知识;然后重点讲解了MySQL的驱动、存储引擎、性能优化、memcached、Sphinx全文搜索引擎等重要主题。
目录
序
前言
第1章 PHP解惑1
1.1 省略结束标签的便利性2
1.2 emtpy、isset、is_null的区别2
1.3 布尔值的正确打开方式3
1.4 变量作用域实践4
1.5 多维数组排序6
1.6 超级全局数组7
1.7 global关键字与global数组的区别8
1.8 活用静态变量9
1.9 require、require_once、include、include_once与autoload11
1.10 =与==、===的区别14
1.11 HereDoc与NowDoc15
1.12 函数传值与引用16
1.12.1 传值17
1.12.2 引用17
1.13 避免使用过多参数19
1.13.1 使用数组19
1.13.2 使用对象19
1.14 匿名函数21
1.15 return与exit22
1.16 is_callable()与method_exists()函数22
1.17 执行外部程序25
1.18 安全模式的使用说明26
1.19 提前计算循环长度27
1.20 SQL组合优化30
1.21 文件处理31
1.22 goto语句:最后的手段35
1.23 利用phar扩展来节省空间36
1.24 手册上的小瑕疵37
1.25 本章小结38
第2章 深入PHP面向对象39
2.1 PHP与面向对象40
2.2 面向对象的一些概念40
2.3 类和对象41
2.4 使用对象43
2.5 构造方法与析构方法43
2.6 实例与多态45
2.7 类的扩展47
2.8 防止重写48
2.9 防止被扩展49
2.10 多态性50
2.11 接口50
2.12 抽象类54
2.13 静态方法和属性55
2.14 魔术方法57
2.15 命名空间63
2.16 traits66
2.17 本章小结68
第3章 PHP输出缓冲区69
3.1 系统缓冲区69
3.2 什么是PHP输出缓冲区70
3.2.1 默认PHP输出缓冲区72
3.2.2 消息头和消息体73
3.2.3 用户输出缓冲区73
3.3 输出缓冲区的机制75
3.4 输出缓冲区的陷阱77
3.5 输出缓冲区实践78
3.6 输出缓冲与静态页面81
3.7 内容压缩输出83
3.8 本章小结84
第4章 PHP缓存技术85
4.1 关于缓存85
4.2 文件缓存与静态页面87
4.3 页面静态化89
4.4 数据级别缓存91
4.5 OpCode缓存94
4.6 OpCode缓存管理工具100
4.6.1 使用APC101
4.6.2 eAccelerator的安装配置106
4.6.3 XCache的安装配置109
4.6.4 使用XCache缓存110
4.6.5 APC、eAccelerator和XCache三者的比较115
4.6.6 用户级别缓存117
4.7 使用deflate压缩页面118
4.8 内存数据库119
4.8.1 关于memcached119
4.8.2 memcached架构121
4.8.3 memcached特性121
4.8.4 memcached缓存策略124
4.8.5 memcached 安装与配置125
4.8.6 使用memcached做分布式Session128
4.8.7 两个memcached扩展130
4.8.8 安装pecl::memcache扩展130
4.8.9 memcached 数据存取方法131
4.9 缓存的陷阱132
4.10 本章小结133
第5章 PHP网络编程134
5.1 Socket编程134
5.1.1 Socket原理134
5.1.2 Socket函数136
5.1.3 PECL Socket函数库137
5.1.4 PHP的Socket源码解析141
5.1.5 创建TCP Socket客户端143
5.1.6 创建TCP Socket服务器145
5.1.7 创建UDP服务器147
5.1.8 字符流与Socket150
5.1.9 连接SMTP服务器153
5.2 cURL核心技术166
5.2.1 什么是cURL166
5.2.2 安装和启用cURL166
5.2.3 建立cURL的步骤168
5.2.4 PHP cURL选项169
5.2.5 cURL实践173
5.3 本章小结187
第6章 PHP调优、测试与工具188
6.1 PHP调试189
6.2 语法检查189
6.3 输出调试信息190
6.3.1 使用内部函数调试191
6.3.2 建立堆栈跟踪195
6.4 活用日志198
6.5 Xdebug200
6.5.1 安装Xdebug201
6.5.2 应用Xdebug206
6.5.3 Xdebug带来的增益207
6.6 本章小结209
第7章 用户验证策略210
7.1 数据库设计210
7.2 HTTP验证213
7.2.1 用户名主机名验证214
7.2.2 HTTP的身份验证机制215
7.2.3 HTTP基本验证216
7.2.4 摘要访问验证 220
7.3 纯PHP验证231
7.3.1 自定义Session231
7.3.2 构造安全的Cookie237
7.4 访问控制列表239
7.5 本章小结241
第8章 深度理解MySQL驱动与存储引擎242
8.1 MySQL连接驱动库242
8.2 mysqlnd驱动243
8.3 存储引擎247
8.3.1 取得存储引擎信息248
8.3.2 定义存储引擎248
8.3.3 内置的存储引擎250
8.4 第三方存储引擎257
8.5 结合硬件的引擎258
8.6 MySQL替代品与分支259
8.7 本章小结262
第9章 PHP命令行界面264
9.1 CLI简述264
9.1.1 CLI的测试安装264
9.1.2 CLI的配置参数265
9.2 CLI命令行接口266
9.3 CLI命令选项266
9.4 CLI开发实践269
9.5 CLI实际应用279
9.6 内置服务器283
9.7 本章小结285
第10章 代码重构实践286
10.1 什么是不良代码286
10.2 什么是好代码287
10.3 如何增加代码可读性289
10.3.1 命名方式290
10.3.2 表达式292
10.3.3 代码段292
10.4 可扩展性与效率重构293
10.5 模块化设计294
10.6 封装与解耦294
10.7 代码效率295
10.7.1 网络带宽的效率296
10.7.2 内存效率低296
10.7.3 程序处理效率低下297
10.8 本章小结298
前言/序言
在过去的十几年间,LAMP开源技术推动着互联网开发,有4000万以上的网站在使用LAMP&LNMP;技术平台驱动。
在互联网和移动互联网平台中,其中Facebook、开心网、新浪网、Yahoo!、百度、腾讯、搜狐、网易及各个视频网站全部或大部分使用的是LAMP&PHP;技术。
与其说Web的伟大创新,不如说是创新者的智慧,还有PHP技术的鲁棒性与相对于其他语言的快速、灵活、敏捷性,给互联网—这个亦庄亦娱的行业带来强大的动力。
近年来,PHP与互联网正一起创造着流行。2000年前后,PHP应用于Yahoo!网站,国内门户网站腾讯、新浪、优酷、凤凰及众多在线网络游戏厂商等也都全部或部分使用PHP技术。同时,PHP也为互联网的新兴网站创造了一个又一个神话。
Craigslist.org是在全美第6名、全球第20名的分类信息网站,每月有1000万独立访问量和30亿页面浏览量,它使用LAMP技术开发,国内类似的网站如赶集网、百姓网也全部使用PHP技术。
维基百科(Wikipedia),也称为自由的百科全书。它是由全球不同民族、不同语言共同编撰的一部网络百科全书,由PHP开发,并以Mediawiki开放源代码。
Yelp是美国最大的店铺点评网站,相当于中国的大众点评网,2009年婉拒了Google近6亿美元的收购要约,目前已成为消费者购买与体验商品的最佳社区,国内有安居客、蚂蚁、小猪短租、好车无忧等类似网站也全部使用了PHP技术。
SNS(Social Networking System)巨头Facebook,是全球最大的LAMP网站,目前已有超过15亿用户,超过Google。目前这个全球最火热的社区,已演化为人们生活不可缺少的工具。国内类似的SNS网站,如开心网、同学网、腾讯朋友等全部使用PHP开发。而Facebook的社交开发商(Social Game Developer),如Zynga等社交游戏厂商也应用了PHP开发,因为Facebook的巨大应用量而赚得盆满钵满。
随着Twitter的流行,使国内微博网站愈加火爆,如新浪微博、腾讯微博等网站全部使用了PHP开发。而热门、模式创新的网站,非Foursquar.com和Groupon.com莫属,它们分别是基于位置的地图服务和团购商品的服务,而这些网站的中国版如美团、团宝等网站使用的也是PHP技术。
PHP在电子商务/社交化电子商务领域,以及企业软件上同样大展身手,如淘宝前端使用PHP、Prestashop、ShopEx、Magento、eCart、osCommerc等。可以预见的是,在未来还会有新的互联网神话出现,而加速这些网站前进的PHP将继续担当主力。
还有企业级开发领域,如Zend、SugarCRM、DotProject等,也在使用PHP来实现云计算等企业级开发领域。而且在当今如火如荼的移动互联网以及网页游戏开发领域,还有PHP for Android等框架来帮助开发者实现本地化App开发的想法,而且App的后面也可使用PHP来提供API服务接口。
PHP并非万能,但凭借它实用高效的优势,在Web开发领域,PHP和MySQL无疑是“世界上最好的语言”。
现今,国内的各个互联网公司均面临两大问题和挑战:第一,高流量、高负载的商务应用使Web系统不堪重负;第二,价格高昂的带宽、硬件、商业软件等成本高居不下,越来越多的互联网公司开始拥抱开源的LAMP/LNMP平台。
同时,PHP也在不断更新。我们需要有众多热爱编程开发,有扎实的基础以及丰富的实际编程经验,有创新、有思想的工程师,加入到PHP开发的行列中。
为什么要使用本书如果你已经看过市场上很多初级类书籍,却还在寻找PHP编程思想、底层原理、编程技巧、可伸缩性、可靠性、开发规范等内容,那么就请使用本书,相信可以获取更多新鲜与深入的主题。
本书为读者带来的是一系列实用的、进阶的“干货”,相信定会给你的程序生涯和未来发展带来帮助。
书中主要介绍如下主题:
解惑:掌握PHP编程中的“长尾”细节。
深入:PHP面向对象高级开发。
浅出:PHP开发中的调试与技巧。
编程之道:透彻理解面向对象开发思想与设计模式。
更快:使用OpCode缓存。
扩展: memcached及扩展应用。
搜索:Sphinx全文搜索引擎。
为了提供更好的实用性,本书除了详解PHP中的深度开发外,还提供了相应的代码实例。读者可登录21CTO(www.21cto.com)本书相关页面下载。
本书写给谁本书适合PHP中级开发及以上资质的读者,需要读者充分了解PHP技术,可结合其他书籍进行同步阅读。
本书读者对象可为PHP研发工程师、软件架构师、系统架构师。本书也可作为IT运维人员、DBA、计算机专业本科以上学生的参考用书。
本书特点书中讲解了PHP 5.6以上及PHP7.02版本的新特性,涵盖了目前大中型网站使用的研发技术,包括扩展、伸缩、负载、优化等,以及实际研发中的解决方案。本书不只停留在代码应用层,还包括架构方面的方法与思路,相信会帮助读者更好掌握PHP。
致谢感谢机械工业出版社杨福川、高靖雅和李艺,以及曾经并肩战斗的朋友,是你们的鼓励才能使本书得以展现给各位。PHP由PHP开发小组和众多的PHPer共建。同样,本书也得到了很多同仁的支持,在此一并致谢!
社区支持如果你从本书中发现错误或漏洞,或者发现一些有价值和感兴趣的内容,可登录本书的技术支持平台:21CTO(www.21cto.com)与笔者进行交流。
同时,欢迎大家提出宝贵意见,以便在本书再版时为读者带来更好的体验。
Preface 序曾经我与你一般,年少时期,对人生只知努力,却不知何往,只得上下求索,东寻西觅。于是求知识、读文字、写代码、做架构,时至而立之年方初识端倪。几年来亲历创业,一路走来有技术的积累,亦有技术外的磨砺。比照更多的同路者,做自己最擅长的才更有力量。
当今社会,如你我这样依靠技术成就理想的开发者,共同特征是吃苦耐劳,也有一些完美主义。我们在互联网上获取大量知识,而上面的信息多数可受其益,但陈旧错漏之文仍有,条理逻辑亦差强人意,难免蒙受其弊。因此,纸质图书阅读对于开发者来说仍有必要。
开发类书籍创作大都不是轻松的工作,但我心中一直存有一份责任,那就是让更多的朋友能够解惑并能目标明确地向前,让“Open & Share”的开源理念得到更多理解,这也是我能够坚持的初心。
每晚在称为“中国硅谷”的中关村软件园区,从窗外看着外面灯火通明的百度大厦,还有很多人在加班工作。也有很多技术类的创业者,他们都在执着地用自己的双手浇灌未来的理想之花。每当此时,耳畔听着西山风声,手中的键盘声响起,眼前屏幕的文字跃动,是另一种喜悦。
创新来源于每天的思考与实践,梦想方能不绝于缕。互联网的新技术每天都在发展,关于LAMP/LNMP开发、高性能、高扩展的话题也一直在更新发展中。
本书持续写了两年有余,其中针对PHP升级,部分内容也同步做了更新,特别是PHP7的发布。书中内容符合PHP5.6及以上版本。希望本书能够帮助你避免在开发时遇到坑,或者简单问题复杂化,进而提高编码效率。
人生处处是战场,作为开发者的我们,需要每日积跬步行千里,不断实践让自己更加优秀。既然你已经准备好了,就让我们充满感激和动力,出发!
杜江(别名:洛逸)
PHP与MySQL高性能应用开发 电子书 下载 mobi epub pdf txt