我们的学校项目要求我们定义一个设计文档,描述一个PHP应用程序的架构。
我们可以自由决定在文档中包含什么内容。
我们的教授建议加入很多(UML)图表。
他还要求我们考虑类图,但要小心,因为PHP不是完全面向对象的。
我的问题是:针对PHP应用程序,域驱动面向对象设计是否可行?在进行PHP面向对象编程时需要考虑什么?有哪些优缺点?有关PHP面向对象编程和最佳实践的任何有用资源吗?
现在可以说PHP完全支持面向对象编程。它提供了你需要的一切,但你不必强制写面向对象的代码。
有两本书对我理解PHP中面向对象原则帮助很大:
OO首先是一种设计方法论。
因此,可以提出一个OO设计,它可以在过程性语言中实现。我曾经看到过这样的实现方式应用于C和COBOL项目。并且,这让我相信,几乎所有OO的优点都与设计有关,而不是与语言实现有关。
因此,是的,您可以提出具有大量UML(类图、用例、泳道等)的OO设计,并在php中实现它(使用类或不使用类)。
无论如何,php实际上是OO的超集,因此如果限制自己只在类内(即方法中)使用类和函数,就可以实现OO。
唯一缺少的将是接口定义,但在这种(未)限制类型检查的语言中定义接口是没有多少意义的。