如何使用PHP开发高效的WEB系统 |
PHP是一个很优异的工具,它 可以 方便,也 可以复杂 。不一样的 名目,应该用不一样的PHP 。 小 名目 - 方便而直接的PHP 普通关于一个 性能页面在20以下的网站,我们 可以用一个很 方便的框架 构造来写 。在这个规模上,我 提议是 使用 比较直接的面向过程编码 步骤,缘由很 方便,没有必要把class文件弄的N 多, 后果controller里边就一个new就完了 。固然,需要频繁 变迁的 名目除外 。 在这个级别上,php 长处 体现的很显而易见: 快捷开发, 一览无余 。缺陷同时也被 潜藏得很好 。 中型 名目 - 构造 柔美的OO化的PHP 关于一个中型 名目,我 提议 使用一个良好设计的框架来做,这个框架 可以是基于MVC模型,封装了众多底层操作的,固然, 定然要有一个好的最好是透明的cache机制,这样,我们为了适应 变迁而加入的OO机制 可以运行得更快更好 。 在这个级别上 。php的缺陷开始凸现,像对OO 支撑的不 完全(这个PHP5有很大改良),不得不单线程模式 。另外一些外围工具开始浮现不足 支撑,像PHP没有好的重构工具,没有好的集成到IDE中的单元测试工具 。 长处固然还是原来的 快捷开发, 宽泛的可用的开源资源 。 大型 名目 - 扩大、优化后的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之类 交融起来,使其成为一个高效系统 。我们 可以用memcached来做 分布式内存治理, 可以用Lucene 来作全文检索,用ejb 容器来放一些业务逻辑组件,PHP则作为前端和系统的胶水, 快捷而灵便的把这些粘合起来 。 |