读书《PHP实战》

Preview

Content

第一部分:工具和概念

第一部分中的几章循序渐进,从 PHP 面向对象编程的具体细节讲到面向对象应用程序设计这个更抽象的主题。

  • 第 1 章介绍并讨论了 PHP 和敏捷实践的利弊。
  • 第 2 章和第 3 章解释 PHP 面向对象编程的机制和语法。尽管对象和类是难以分割的东西,但是第 2 章主要关注对象的特性,而第 3 章则重点关注类。
  • 第 4 章讨论了对象和类的概念好在哪里,它们如何与现实世界产生联系,以及如何区分面向对象设计的优劣。
  • 第 5 章讨论最基本的类的关系一继承、关联和组合,以及程序设计中接口的作用。
  • 第 6 章开始我们正式探索面向对象设计,将面向对象理论作为设计的指导思想。
  • 第 7 章介绍设计模式再现常见设计问题的解决方案,并且描述一些最常见的问题。
  • 第 8 章介绍设计原则和模式在处理日期和时间时的另一种应用。

第一部分 工具和概念

第1章 PHP与现代软件开发

1.1

作者写这本书时是php5.3版本,而现在php版本已经到7.2了,所以里面有不少东西是“过时”的,最大的特点是他在描述php的优点和缺点时,更加凸显出php社区变化之快。至少现在看,里面有不少观点是不可苟同的了。对于此我这边来整理下我所理解的PHP缺点:

  1. 缺少类型安全
    由于php的松散类型,导致了php写程序的时候要做很多安全的判断,不然就当韭菜了,典型的一个例子如, 在编程的时候不应该使用如下的这段代码:
    1
    2
    3
    if(intval($a)>1000) {
    mysql_query("select * from news where id=".$a)
    }

这个时候$a的值有可能是1002 union…..

不像c、java那样需要严格定义好类型的php,注定写代码的时候多留点心眼咯!

另外有其他缺点补充的欢迎评论区说明!

1.2

先引用问中的一段话把:

本节将简略介绍敏捷开发[^xp]和面向对象设计中最重要的思想。我们将介绍设计模式、重构和单元测试,了解它们的工作原理以及如何互相配合,并能开始看到如何在 PHP 中实现它们。

虽然有点不太通顺,但这句话感动了我,让我有看下去的冲动了!作者先是权衡了【敏捷开发】和 普通开发的思路,但这些都不是最解决问题的理想方法。他承诺了一句: 我们开出的成功处方是将最佳方法与最好的软件工具相结合,而在我们看来,最好的软件工具就是 PHP。下面我们看一下 PHP 5 是如何与方法论联系起来的。。好,让我们拭目以待!

敏捷开发的一些基本元素之间的彼此依赖关系如下:

图 1-6 敏捷开发的一些基本元素之间的彼此依赖关系

ch1相关参考

第2章 PHP中的对象


[^xp]敏捷方法论【如极限编程(Extreme Programming, XP)】尝试着用这样的方式来解决这个问题:只进行较少的前期设计,确保一直能够对设计进行更改,并使用重构(refactoring)这样一套系统的过程来不断改善代码的结构。
[^TDD]TDD(test-driven development,测试驱动开发)或测试先行开发(test-first develop- pment)