如?何?使?用?P?H?P?开?发?高?效?的?W?E?B?系?统

Posted liguangsunls

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如?何?使?用?P?H?P?开?发?高?效?的?W?E?B?系?统相关的知识,希望对你有一定的参考价值。

php是一个非常优秀的工具,它能够简单,也能够复杂。不一样的项目,应该用不一样的PHP。 
  小项目 - 简单而直接的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?系?统的主要内容,如果未能解决你的问题,请参考以下文章

深入浅出-口语:自然发音

非循环双链表 | 使访问频率高的元素靠前排列的查找函数

用加权最小二乘法拟合曲线matlab?

sysctl -p 重新加载文件/etc/sysctl.conf -a 所有参数 -w 临时指定

汉字编码与ASCII编码有何区别

C语言编程实现:从N位数字串中删掉M个数使剩下的数字串所表示的数值最小。