如?何?使?用?P?H?P?开?发?高?效?的?W?E?B?系?统
Posted liguangsunls
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如?何?使?用?P?H?P?开?发?高?效?的?W?E?B?系?统相关的知识,希望对你有一定的参考价值。
小项目 - 简单而直接的PHP
一般对于一个功能页面在20下面的站点。我们能够用一个非常easy的框架结构来写。在这个规模上,我建议是使用比較直接的面向过程编码方法,原因非常easy,没有必要把class文件弄的N 多。结果controller里边就一个new就完了。
当然,需求频繁变化的项目除外。
在这个级别上,php长处表现的非常明显:高速开发。一目了然。
缺点同一时候也被隐藏得非常好。
中型项目 - 结构优美的OO化的PHP
对于一个中型项目。我建议使用一个良好设计的框架来做,这个框架能够是基于MVC模型,封装了众多底层操作的。当然。一定要有一个好的最好是透明的cache机制,这样。我们为了适应变化而增加的OO机制能够执行得更快更好。
在这个级别上。
php的缺点開始凸现,像对OO支持的不完整(这个PHP5有非常大改进)。仅仅能单线程模式。另外一些外围工具開始出现缺乏支持。像PHP没有好的重构工具。没有好的集成到IDE中的单元測试工具。长处当然还是原来的高速开发,广泛的可用的开源资源。
大型项目 - 扩展、优化后的PHP
这里的大型项目,简单的指分布式项目,就是说,你的程序须要被部署在N台server上了。
在这个层级上。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则作为前端和系统的胶水,高速而灵活的把这些粘合起来。
以上是关于如?何?使?用?P?H?P?开?发?高?效?的?W?E?B?系?统的主要内容,如果未能解决你的问题,请参考以下文章