background image

PHP 开发高效 WEB 系统的技巧讲解

通过对 PHP 语言的学习,大家知道它是一门功能强大的计算机语言,被许多程序员用来
开发网站。接下来我们将为大家介绍 PHP 开发高效 WEB 系统的相关绩效。

  PHP 开发高效 WEB

 

系统小项目 - 简单而直接的 PHP

  一般对于一个功能页面在 20 以下的网站,我们可以用一个很简单的框架结构来写。
在这个规模上,我建议是使用比较直接的面向过程编码方法,原因很简单,没有必要把
class 文件弄的 N 多,结果 controller 里边就一个 new 就完了。当然,需求频繁变化的项目
除外。

  在这个级别上,php 优点表现的很明显:快速开发,一目了然。缺点同时也被隐藏得
很好。

  PHP 开发高效 WEB

 

系统中型项目 - 结构优美的 OO 化的 PHP

  对于一个中型项目,我建议使用一个良好设计的框架来做,这个框架可以是基于
MVC 模型,封装了众多底层操作的,当然,一定要有一个好的最好是透明的 cache 机制,
这样,我们为了适应变化而加入的 OO 机制可以运行得更快更好。

  在这个级别上。php 的缺点开始凸现,像对 OO 支持的不完整(这个 PHP5 有很大改进),
只能单线程模式。另外一些外围工具开始出现缺乏支持,像 PHP 没有好的重构工具,没
有好的集成到 IDE 中的单元测试工具。优点当然还是原来的快速开发,广泛的可用的开源
资源。

  PHP 开发高效 WEB

 

系统大型项目 - 扩展、优化后的 PHP

  这里的大型项目,简单的指分布式项目,就是说,你的程序需要被部署在 N 台服务
器上了。在这个层级上,PHP 比起 j2ee 的确缺乏很多支持。我曾和 shadow 在 735 上详细讨
论过 PHP 要在大型系统上应用需要解决的一些问题,当然这些问题不光是 PHP 这个语言
的问题,也包括了周边开发的问题:

  1 PHP 的页面代码共享,PHP

 

的源代码被载入内存一次以后,就在其中保留 - 这个用

APC 和 Zend 的优化器可以搞定。

  2 PHP 页面之间的数据对象共享,a.php 和 b.php 之间可以共享一个数据对象,比如
数组,这个现在可以用序列化来作,但是会有文件 io,这块可以用共享内存或者
memcached 来处理。

  3 PHP 的数据库连接池,因为在多前端的情况下,PHP 控制不住对数据库的连接,
所以需要在数据库前边去作一个连接池,类似于 sqlrelay 的东西。另外数据缓存也是很重
要的,大压力开发有一个 tip,就是能不动数据库就不要动数据库。

  4 PHP 的前端 cache 系统。一个透明的可控制的 cache 机制,确保网站的页面以最少次
数查询数据库。这个有很多实现,但是没有找到特别好的。

  5 一个 PHP 应用,成功的解决调这几个问题以后,应付稍微大一点的压力是没有什
么问题的。

  在这个级别上,重要的是,把 PHP java C++ python 之类融合起来,使其成为一个高