热门资源

PHP的面向对象特性在现有版本中虽然得到了改善

代码如下复制代码
编码对于合格的PHP程序员来说并不是什么难事,因此系统分析和设计这一阶段就显得尤为重要。不过本文并不打算讨论和需求分析、获取商业逻辑相关的话题,而是针对系统设计方面进行探讨。

面临难题编码对于合格的PHP程序员来说并不是什么难事,因此系统分析和设计这一阶段就显得尤为重要。对于一个担任PHP项目的系统分析员来说,面临着两个难题:

PHP语言本身的限制。 这
一点在复杂系统的面向对象设计中尤其显著。PHP的面向对象特性在现有版本中虽然得到了改善,但是还不甚健全,根本不足以担任面向对象设计的实现语言;即
使眼光长远一些,在即将释出的以Zend Engine
2.0支持的全新PHP中,面向对象特性也不会像现在流行的Java或者C++那样。但是如果采用完全面向过程的方式,可以想见整个系统的设计会非常复杂,而由此带来的编码复杂和维护困难更
加难以应付。 现有资料的严重缺乏。
这是众所周知的现象即针对Web项目的系统设计资料不足;而在这些有限资料中,关于
PHP的设计资料又非常匮乏。如果本公司或本人也没有相关的技术积累,系统分析员只能在黑暗中摸索方法。

认识面对的系统既然如此,采用何种方法妥善处理PHP系统的分析和设计?最初的构想应该需要分清项目承担任务的类型:

涉及大量客户本身或者客户所在行业的商业逻辑的项目,包括办公系统、订单系统以及其他商业系统。
简单网站项目,包括一些需要承担高访问量或要求快速响应的项目比如品牌网站或者活动网站以及其他一些网站。
综合性网站项目。通常包含多个相对独立的子系统比如新闻子系统、论坛子系统、产品陈列子系统等等。

PHP
的设计初衷在于解决后两种项目的迫切需求,语言本身对于这些项目进行了良好的改造。而众多的PHP开发者对这些项目也具有或多或少的经验,相关书籍中的范
例也大都围绕于此。相对说来第一种系统所有的资料不多,各种出版物对其内容也很少提及。因此在本文中将题所述对第一种类型的项目进行详细讲述,同时附带提及第二种项目以及第三种项目的设计方法。当然,并不是被归类的这些项目就只能采用本文描述的方式,系统分析员
需要权衡各方面因素加以选择。

方案一:涉及大量商业逻辑项目如何分离用户界面和后台操作?如何避免将商业逻辑混淆于一般的流程控制中?作为一个严谨的商用项目,就需要考虑很多类似的问题。对于由PHP担当的这类项目,贯彻Model-View-Controller模式的设计是一个非常好的方法。

理论描述
这里我不想多加解释MVC模式本身–简单的从字面上以及应用上说,通过将系统的设计分为Model模型/逻辑、View视图/界面、
Controller控制/流程三个逻辑部分达到良好的项目效果,以此便利各部分开发者的工作并降低日后的维护成本。就现实的项目开发而言,现存的很大问题包括网页设计人员和程序开发人员的工作交错和冲突以及商业逻辑嵌入
页面造成不可重用也很难维护等等。引入MVC模式一方面可以为系统的总体设计指出明确的方向,对于开发团队的分工也是良好的指导。

既然依照MVC模式要求对系统的总体结构在逻辑上分成三部分,那么团队的开发者中也存在着针对各个部分的开发者。

开发者角色 相关系统逻辑 职责 网页设计人员 View视图/界面

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章