具体描述
本书主要针对中高级读者,主要内容如下:
面向对象编程的诸多概念和代码示例;
PHP在移动设备上的应用;
数据库集成;
一些非常流行和高级的函数库;
Web安全问题,主要探讨加密算法SHA-1;
敏捷开发。
作者简介
Peter MacIntyre
拥有二十多年的信息产业从业经验,主要致力于软件开发,曾多次作为演讲嘉宾参加国际计算机大会。
Brian Danchilla Zend
认证的PHP开发人员,经验丰富的Java程序员,拥有计算机科学和数学双学位。不编程时,他喜欢弹吉他或者进行户外运动。
Mladen Gogala
资深数据库专业人员,精通Linux、Perl和PHP,先后从事过Oracle DBA、Linux和Unix系统管理员,VAX/VMS系统管理员。从20世纪90年代起,他已处理过众多TB级的数据库,主要是Oracle类型的。
译者简介:
王爱华
2000年浙江大学毕业,有着十几年的软件开发经验,参与过多个大型项目的设计和开发。目前为自由职业者,致力于移动互联网、企业级Java/PHP/Python应用的设计、开发和咨询。
姚军强
高级软件工程师,从事软件开发达十余年。精通C语言、C++、PHP等主流语言,对MySQL、 MongoDB、Redis等数据库也颇有研究。曾在新浪、百度爱奇艺工作多年,现任职于Funplus点点互动(北京)科技有限公司,负责移动游戏FamilyFarmSeaside的后台开发工作。
目录信息
1.1 类 1
1.2 继承和重载 3
1.3 各种“魔术方法” 7
1.3.1 __get和__set方法 7
1.3.2 __isset方法 8
1.3.3 __call方法 9
1.3.4 __toString()方法 9
1.4 复制、克隆和比较对象 10
1.5 接口、迭代器和抽象类 12
1.6 类的作用域与静态成员 16
1.7 总结 18
第2章 异常和引用 19
2.1 异常 19
2.2 引用 24
2.3 总结 27
第3章 PHP在移动设备上的应用 28
3.1 移动设备的差异性 28
3.2 检测设备 29
3.2.1 用户代理 29
3.2.2 内置的PHP支持 29
3.3 侦测移动性能 32
3.3.1 WURFL系统 32
3.3.2 Tera-WURFL 40
3.4 渲染工具 44
3.4.1 WALL 44
3.4.2 图像调整 45
3.4.3 响应性CSS 46
3.5 模拟器和SDK 47
3.5.1 Android开发 47
3.5.2 支持PHP的Adobe Flash Builder 47
3.6 QR码 48
3.7 总结 49
第4章 PHP在社交媒体中的应用 50
4.1 OAuth 50
4.2 Twitter 51
4.2.1 公有的搜索API 51
4.2.2 私有REST API 52
4.2.3 使用Twitter OAuth连接网站的登录 63
4.2.4 更多的API方法和示例 67
4.3 Facebook 70
4.3.1 为退出Facebook添加链接 75
4.3.2 请求额外的权限 76
4.3.3 图像API 77
4.4 总结 79
第5章 前沿 80
5.1 命名空间 80
5.1.1 命名空间和自动加载 83
5.1.2 命名空间小结 83
5.2 匿名函数(闭包) 84
5.3 Nowdoc 85
5.4 局部goto语句 87
5.5 标准PHP库 88
5.6 Phar扩展 91
5.7 总结 94
第6章 表单设计与管理 95
6.1 数据验证 95
6.2 上传文件/图片 101
6.3 图像转换和缩略图 102
6.4 正则表达式 104
6.5 多语言集成 107
6.6 总结 108
第7章 数据库集成I 109
7.1 MongoDB简介 110
7.1.1 MongoDB查询 114
7.1.2 更新MongoDB 118
7.1.3 MongoDB中的聚合 120
7.1.4 MongoDB总结 123
7.2 CouchDB简介 123
7.2.1 使用Futon 124
7.2.2 CouchDB总结 129
7.3 SQLite简介 130
7.4 总结 139
第8章 数据库集成II 140
8.1 MySQLi扩展简介 140
8.2 PDO简介 147
8.3 ADOdb简介 151
8.4 使用Sphinx全文检索 155
8.5 总结 163
第9章 数据库集成III 164
9.1 Oracle关系型数据库简介 164
9.2 基础知识:连接和执行SQL 166
9.3 数组接口 169
9.4 PL/SQL存储过程及游标 173
9.5 使用LOB类型 176
9.6 再探数据库连接:连接池 180
9.7 数据库和PHP中的字符集 183
9.8 总结 184
第10章 函数库 185
10.1 SimplePie 186
10.2 TCPDF 189
10.3 集成谷歌地图 201
10.4 电子邮件和短信 205
10.5 gChartPHP:Google图表API包 208
10.6 总结 211
第11章 安全 212
11.1 永不信任数据 212
11.1.1 register_globals 212
11.1.2 白名单和黑名单 213
11.1.3 表单数据 214
11.1.4 $_COOKIES、$_SESSION和$_SERVER 215
11.1.5 Ajax请求 216
11.2 常见的攻击 216
11.2.1 同源策略 216
11.2.2 跨站脚本 217
11.2.3 跨站请求伪造 219
11.3 会话 220
11.4 预防SQL注入 221
11.5 过滤器扩展 222
11.6 php.ini和服务器设置 225
11.6.1 服务器环境 225
11.6.2 强化php.ini 226
11.7 密码算法 227
11.8 总结 228
第12章 使用Zend Studio for Eclipse、Bugzilla、Mylyn和Subversion进行敏捷开发 229
12.1 敏捷开发的原则 229
12.2 项目的敏捷开发 230
12.3 Bugzilla简介 231
12.4 Eclipse下的Mylyn 233
12.5 Eclipse中组合Bugzilla和Mylyn 235
12.6 延伸功能的优点 239
12.7 总结 240
第13章 重构、单元测试和持续集成 241
13.1 重构 241
13.1.1 小的重构 242
13.1.2 更大的遗留代码的示例 245
13.2 单元测试 259
13.3 持续集成 274
13.3.1 持续集成服务器 275
13.3.2 版本控制 275
13.3.3 静态分析 276
13.3.4 构建自动化 277
13.3.5 Jenkins服务器的安装 278
13.4 总结 281
第14章 XML 282
14.1 XML入门 282
14.2 模式(schema) 283
14.3 SimpleXML 284
14.3.1 从字符串解析XML 284
14.3.2 从文件解析XML 285
14.3.3 命名空间 290
14.3.4 RSS 292
14.3.5 使用SimpleXML生成XML 294
14.4 DOMDocument 299
14.5 XMLReader和XMLWriter 301
14.6 总结 303
第15章 JSON和Ajax 304
15.1 JSON 305
15.2 Ajax 311
15.2.1 传统的Web模型 311
15.2.2 Ajax Web模型 312
15.2.3 异步事件与同步事件 313
15.2.4 XMLHttpRequest对象 314
15.2.5 使用XMLHttpRequest 316
15.2.6 高级的JavaScript API 321
15.2.7 jQuery的例子 321
15.2.8 使用Ajax向PHP脚本发送数据 326
15.3 一个简单的图形程序 328
15.4 总结 336
第16章 结束语 337
16.1 资源 337
16.1.1 www.php.net 337
16.1.2 www.zend.com 338
16.1.3 devzone.zend.com 338
16.1.4 PHP | Architect Magazine: www.phparch.com 339
16.2 会议 339
16.3 PHP认证 340
16.4 总结 341
附录 正则表达式 342
· · · · · · (收起)
读后感
用户评价
这本书的价值,在于它能够帮助开发者建立起一种“工程化”的思维方式。在《PHP编程实战》这本书中,我看到了很多关于项目管理和团队协作的内容,这让我意识到,一个优秀的软件项目,不仅仅需要好的代码,还需要良好的流程和规范。书中关于版本控制工具Git的详细讲解,以及如何利用Git进行分支管理、代码合并等,让我对团队协作有了更清晰的认识。它甚至还提到了CI/CD(持续集成/持续部署)的概念,以及如何在PHP项目中实践这些理念,这让我对现代软件开发的流程有了更全面的了解。此外,书中还探讨了如何进行性能监控和故障排查,以及如何利用日志系统来分析问题、定位Bug。这对于我来说是非常宝贵的经验,因为在实际项目中,遇到性能瓶颈或者突发的错误是很常见的事情,而掌握这些技能能够帮助我更快速、更有效地解决问题。读完这本书,我感觉自己不仅仅是掌握了一门技术,更是获得了一种解决问题的能力和一种工程化的思维模式。
我最近刚读完《PHP编程实战》这本书,感觉受益匪浅。对于我这样一个有着几年PHP开发经验的人来说,这本书就像是一面镜子,让我看到了自己技术上的不足和盲点,也为我指明了前进的方向。书中很多关于“最佳实践”的讲解,让我大开眼界。我之前可能习惯于“能跑就行”的代码风格,但这本书让我认识到,编写易于阅读、易于维护、易于扩展的代码是多么重要。它详细地讲解了如何遵循PSR规范,如何利用命名空间和自动加载来组织代码,以及如何使用设计模式来提高代码的可重用性和可维护性。在缓存方面,书中详细介绍了各种缓存策略,如页面缓存、数据缓存、对象缓存等,以及如何在PHP中实现这些缓存,这对于提升Web应用的性能有着至关重要的作用。我之前对缓存的理解比较片面,很多时候仅仅是简单地使用文件缓存,但这本书让我看到了更广阔的世界,比如Redis、Memcached等分布式缓存的应用。此外,书中关于错误处理和异常管理的讲解也非常实用,它不仅教我如何捕获和处理错误,更重要的是教我如何从错误中学习,如何设计出能够优雅地处理异常的应用程序。
《PHP编程实战》这本书的阅读体验非常流畅,而且内容极其丰富。我一直以来都觉得,真正有价值的书籍,应该是能够引领你思考,而不是简单地告诉你“怎么做”。这本书恰恰做到了这一点。它在讲解每一个技术点时,都会深入分析其背后的原理和设计理念,让我不仅仅是知其然,更知其所以然。在网络通信方面,书中详细讲解了HTTP协议的各个方面,以及如何在PHP中处理GET、POST请求,如何设置HTTP头,如何进行文件上传和下载,这些都是Web开发中最基本但又非常重要的环节。它还深入探讨了Session和Cookie的原理和安全问题,让我对如何管理用户状态有了更清晰的认识。此外,书中对RESTful API的设计原则进行了非常详尽的阐述,这对于我构建前后端分离的应用非常有帮助。它不仅讲解了API的URL设计、HTTP方法的使用,还包括了状态码的意义、请求与响应的格式等,让我能够设计出更加规范、易于维护的API接口。读完这本书,我感觉自己的视野更加开阔了,对PHP在整个Web开发生态中的地位和作用有了更深刻的理解。
这本书的专业性让我印象深刻。它并没有为了迎合初学者而牺牲内容的深度,也没有因为追求技术的前沿性而脱离实际。它恰到好处地找到了一个平衡点,既有扎实的基础理论,又有实用的技术实践。我特别喜欢书中关于“如何构建一个安全的PHP应用程序”的部分。它详细剖析了各种常见的安全威胁,并提供了具体的防御策略,比如如何防止SQL注入,如何处理用户输入,如何对敏感数据进行加密,如何设置安全的会话管理等等。这让我意识到,安全不仅仅是后端开发人员的责任,而是整个项目团队都需要重视的问题。书中还涉及了单元测试和集成测试的概念,并且给出了PHPUnit等测试框架的使用示例。这对于我来说是全新的领域,但书中的讲解非常清晰,让我能够逐步掌握如何编写有效的测试用例,从而提高代码的质量和稳定性。此外,书中还探讨了Composer的使用,这让我能够更方便地管理项目的依赖,以及如何利用Composer来引入第三方库,这极大地提高了开发效率。
《PHP编程实战》这本书,真的是一本从“菜鸟”到“进阶”的绝佳伴侣。我之所以这么说,是因为它不仅仅是停留在“教你写代码”的层面,而是更侧重于“教你如何思考如何写代码”。书中关于设计模式的讲解,让我对面向对象编程有了全新的认识。我之前可能只是零散地了解一些设计模式,但这本书将它们系统地串联起来,并且通过实际的PHP代码示例,清晰地展示了它们的应用场景和优势。比如,工厂模式、单例模式、观察者模式等,在实际项目中如何应用,能够带来什么样的好处,书中的讲解都非常具体。另外,关于数据库连接池和连接复用的讲解,让我对数据库的性能优化有了更深入的理解。我之前可能习惯于每次请求都重新建立数据库连接,而这本书让我认识到,通过连接池可以显著减少数据库连接的开销,从而提升应用的响应速度。书中还提到了ORM(对象关系映射)的概念,以及Doctrine等ORM框架的使用,这让我能够更高效地操作数据库,减少编写SQL语句的工作量。
自从我接触了《PHP编程实战》这本书,感觉我的编程思维方式发生了巨大的转变。在此之前,我可能更多的是关注如何快速实现某个功能,常常陷入“为了实现而实现”的泥沼。这本书让我明白,真正的“实战”不仅仅是代码的堆砌,更是对整个软件生命周期的深刻理解和精细化管理。它并没有回避那些在实际开发中常常被忽视但却至关重要的问题,比如如何有效地进行错误处理和日志记录,如何设计可扩展且易于维护的代码结构,以及如何编写安全可靠的应用程序。书中的许多章节,比如关于性能优化的部分,给了我很多启发。我过去常常觉得只要服务器配置够高,性能问题就不大,但这本书让我看到了从代码层面进行优化的巨大潜力,比如如何利用缓存、如何优化数据库查询、如何减少不必要的资源消耗等等。它甚至还探讨了一些更高级的主题,比如设计模式在PHP开发中的应用,以及如何进行单元测试和集成测试,这对于我来说是全新的领域,但书中的讲解却非常通俗易懂,即使是初学者也能很快掌握。更让我惊喜的是,书中还涉及了版本控制工具Git的使用技巧,以及CI/CD(持续集成/持续部署)的概念,这让我对现代软件开发的流程有了更全面的认识。我之前一直以为这些是大型企业才会用到的东西,但这本书让我意识到,即使是小团队或者个人项目,采用这些最佳实践也能极大地提升开发效率和项目质量。
这本书对我来说,最大的价值在于它提供了一种“解决问题”的系统性思路。在阅读《PHP编程实战》之前,我可能习惯于遇到问题就去网上搜,然后复制代码,再进行一些微调。这种方式虽然能解决燃眉之急,但长此以往,我的技术积累就显得零散且肤浅。这本书则不同,它从问题的根源出发,讲解了各种场景下应该如何选择合适的技术方案,如何进行权衡,以及如何在不同的技术之间进行有效的整合。例如,在讲解数据库设计时,它不仅仅教你如何写SQL语句,更重要的是教会你如何进行数据建模,如何理解范式,以及如何在关系型数据库和NoSQL数据库之间做出选择。对于API设计,书中给出了非常清晰的RESTful设计原则,并且详细说明了如何处理认证、授权、请求与响应格式等问题,这让我能够构建出更加标准化、易于调用的API。更让我印象深刻的是,书中对安全性的重视。它详细地剖析了常见的Web安全漏洞,如SQL注入、XSS攻击、CSRF攻击等,并提供了切实可行的防御措施。这让我意识到,安全不仅仅是开发后期需要考虑的问题,而应该贯穿于整个开发过程。读完这本书,我感觉自己不再是那个只会写代码的“码农”,而是能够从更宏观的角度思考项目,设计出更健壮、更安全、更具扩展性的系统。
这本《PHP编程实战》就像一本久旱逢甘霖的书,对于我这种在PHP领域摸爬滚打多年,却总觉得在某些地方欠缺那么一点“实战”经验的开发者来说,简直就是及时雨。我一直以来都是那种“知道怎么做,但不一定知道为什么这么做”的状态,很多时候都是对着网上的零散教程、Stack Overflow的答案一路磕磕绊绊地走过来,虽然项目也能做,但总感觉底子不牢固,遇到复杂点的问题就容易卡住。这本书最大的吸引力在于它不仅仅停留在讲解语法层面,而是深入到如何将PHP应用于实际项目开发的全流程。从最初的项目架构设计,到数据库的选择与优化,再到API的构建与安全,最后到部署与监控,它都给出了非常详尽且实用的指导。我尤其喜欢它在讲解框架应用时,没有简单地罗列几个框架的API,而是深入分析了不同框架的设计理念和适用场景,让我能够根据项目需求做出更明智的选择,而不是盲目跟风。书中大量的代码示例,都经过了反复的推敲和优化,并且提供了清晰的注释和解释,让我能够快速理解其背后的逻辑,并将其应用到自己的项目中。它不仅仅是一本技术手册,更像是一位经验丰富的导师,在我迷茫时指引方向,在我困惑时点亮思路。读完这本书,我感觉自己对PHP的理解上升了一个维度,从一个“搬砖者”蜕变成一个“架构师”的雏形,这对我未来的职业发展有着至莫大的帮助。
《PHP编程实战》这本书,就像一位经验丰富的引路人,在我迷茫的技术道路上提供了清晰的指引。它并没有提供“速成”的秘诀,而是通过深入浅出的讲解,带领我一步一步地理解PHP开发的本质。在文件操作方面,书中详细讲解了PHP中各种文件读写、目录创建、文件上传下载等操作,并且强调了在处理文件时需要注意的安全问题,比如文件类型的验证、文件大小的限制等。这让我对文件操作有了更安全、更规范的认识。此外,书中还涉及了PHP与Web服务器(如Apache、Nginx)的交互原理,以及如何配置PHP以达到最佳的性能和安全性。这让我对整个Web开发流程有了更宏观的理解。更让我惊喜的是,书中还对一些“冷门”但却非常实用的技术进行了介绍,比如PHP的CLI(命令行接口)应用,以及如何利用CLI脚本来完成一些自动化任务,这让我对PHP的应用场景有了更广阔的想象。总的来说,这本书的内容非常扎实,讲解也很到位,对于任何想要深入了解PHP开发的开发者来说,都是一本不可多得的宝藏。
《PHP编程实战》这本书真的可以称得上是一本“宝典”。我之前也看过不少PHP相关的书籍,但很多都流于表面,或者过于理论化,很难真正应用到实际工作中。这本书的独特之处在于它始终紧密结合实际项目,将抽象的技术概念转化为具体的解决方案。它所涵盖的知识点非常广泛,从基础的PHP语法和函数,到高级的面向对象编程,再到Web开发中的各种常见技术,如HTTP协议、Session、Cookie、文件上传、表单处理等等,都进行了深入浅出的讲解。我尤其欣赏书中关于“如何构建一个高内聚、低耦合的PHP项目”的论述,这让我对模块化开发有了更深刻的理解。它通过大量的实例,展示了如何将大型项目分解成更小的、可管理的模块,以及如何通过接口和抽象来降低模块之间的依赖性。另外,书中对PHP性能优化的讲解也非常到位。它不仅仅停留在表面,而是深入到PHP引擎的内部工作机制,分析了哪些操作会影响性能,以及如何通过代码优化、数据库优化、服务器配置优化等多种手段来提升应用程序的响应速度和吞吐量。读完之后,我感觉自己对PHP的理解更加全面和深入,也更有信心去应对更复杂的项目挑战。
主要是 spl 以及 xss cros
代码简洁,逻辑清晰。 开篇第一句足可见与国内教材差距。类是什么? 类是创建功能副本的模版。
代码简洁,逻辑清晰。 开篇第一句足可见与国内教材差距。类是什么? 类是创建功能副本的模版。
转 laravel.然后弃坑。在PHP环境配置过程中,失去了信心。
代码简洁,逻辑清晰。 开篇第一句足可见与国内教材差距。类是什么? 类是创建功能副本的模版。