首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

MVC 模式、类封装还是黑客代码 合理设计 PHP 项目-简介

MVC 模式、类封装还是黑客代码 合理设计 PHP 项目-简介

面临难题编码对于合格的 PHP 程序员来说并不是什么难事(也许只是花费时间长短的问题),因此系统分析和设计这一阶段就显得尤为重要。对于一个担任 PHP 项目的系统分析员来说,面临着两个难题:
  • PHP 语言本身的限制。
    这一点在复杂系统的面向对象设计中尤其显著。 PHP 的面向对象特性在现有版本中虽然得到了改善,但是还不甚健全,根本不足以担任面向对象设计的实现语言;即使眼光长远一些,在即将释出的以 Zend  Engine  2.0 支持的全新 PHP 中,面向对象特性也不会像现在流行的 Java 或者 C++ 那样(关于这方面的内容可以参见我在 developerWorks 中国网站发表的另一篇文章)。但是如果采用完全面向过程(准确说是面向 Web 页面)的方式,可以想见整个系统的设计会非常复杂,而由此带来的编码复杂和维护困难更加难以应付。
  • 现有资料的严重缺乏。
    这是众所周知的现象即针对 Web 项目的系统设计资料不足;而在这些有限资料中,关于 PHP 的设计资料又非常匮乏。如果本公司或本人也没有相关的技术积累,系统分析员只能在黑暗中摸索方法(更坏的两种情况,一是照搬其他项目比如 Java 或者 C++ 的设计,二是认为项目简单而不负责任的草草了事)。
认识面对的系统既然如此,采用何种方法妥善处理 PHP 系统的分析和设计?最初的构想应该需要分清项目承担任务的类型:
  • 涉及大量客户本身或者客户所在行业的商业逻辑的项目,包括办公系统、订单系统以及其他商业系统。
  • 简单网站项目,包括一些需要承担高访问量或要求快速响应的项目比如品牌网站或者活动网站以及其他一些网站。
  • 综合性网站项目。通常包含多个相对独立的子系统比如新闻子系统、论坛子系统、产品陈列子系统等等。
PHP 的设计初衷在于解决后两种项目的迫切需求,语言本身对于这些项目进行了良好的改造。而众多的 PHP 开发者对这些项目也具有或多或少的经验,相关书籍中的范例也大都围绕于此。相对说来第一种系统所有的资料不多,各种出版物对其内容也很少提及。因此在本文中将题所述对第一种类型的项目进行详细讲述(有关 MVC 模式和类封装),同时附带提及第二种项目(有关黑客代码)以及第三种项目的设计方法。当然,并不是被归类的这些项目就只能采用本文描述的方式,系统分析员需要权衡各方面因素加以选择。
返回列表