面向对象的PHP应用程序设计

时间:2008-11-25 12:27:07

标签: php oop

对于我们的学校项目,我们的任务是定义一个描述PHP应用程序架构的设计文档。

我们可以自由决定在文档中包含哪些内容。

我们的教授提出了很多(UML)图表。

他还要求我们考虑类图,但要小心,因为PHP不是完全面向对象的。

我的问题:面向领域的面向对象设计是否适用于PHP应用程序?在PHP中执行OO时要考虑什么?优缺点都有什么?在PHP和PHP最佳实践中有关OO的任何有用资源吗?

4 个答案:

答案 0 :(得分:8)

恕我直言,如果不知道应用程序应该做什么,就很难描述任何应用程序的架构。任何复杂性的所有应用程序(PHP或其他)看起来都不同。

其次,PHP5为您提供了类/对象以及通常过多的OO gubbings - 所以将其描述为“不完全面向对象”是我认为的误导。如果你的意思是你可以采取一种程序性方法而不受限于对象,那么是的,但是如果你想要一切都成为一个对象那么这就是你的选择。

DDD对PHP是否可行?当然是。架构的一种特殊方法通常不依赖于技术。 OO设计的最佳实践,优缺点适用于大多数语言 - PHP让您可以自由决定如何构建代码。

您可能会发现PHP网站上的这个Best Practices讲话很有用;)

答案 1 :(得分:2)

现在可以将PHP描述为完全面向对象的选择。它提供了您需要的一切,但您不必编写OO代码。

有两本书帮助我理解与PHP相关的面向对象原则:

  • PHP in Action(Manning)
  • Zend学习指南(PHP5)(Zend)

答案 2 :(得分:2)

目前使用的大多数OO语言都不是完全面向对象的。每种语言都有特质和陷阱。 所以我认为PHP对于大多数简单的项目都足够了。我参与了Zend Framework,它被设计为OO类库,具有设计模式等。

PHP的一个建议是你应该注意它的SPL组件,它为你提供了许多基本类的接口。

我认为如果你的老师说“把你想要的东西放到设计文档中,UML图很漂亮”,那就太弱了。设计文档是软件工程中一个重要但被低估的部分。您的老师应该向您展示优秀设计文档的示例或模板。

答案 3 :(得分:0)

OO首先是一种设计方法。

因此,有可能提出一个可以实现的OO设计 在程序方面。我已经看到这对C和COBOL项目都做了。 并且它使我确信OO的几乎所有优点都与设计有关而不是语言实施。

所以是的,你可以想出一个带有大量UML(类图,用例,泳道等)的OO设计,你可以在php中实现它(使用类或不使用类)。

无论如何,php实际上是OO的超集,所以如果你把自己限制在课堂上 和类(==方法)中的函数你有一个OO实现。

唯一缺少的是接口定义,但它很少 用这种(非)限制类型检查来定义语言中的接口的意义。

相关问题