从用户的角度讲:php的开发本钱低,速率较快,比用asp和jsp的开发性价比高。从手艺的角度讲:php是一个很优良的工具,它可以简略,也能够庞大。纷歧样的项目,应该用纷歧样的php。
普通对付一个功用页面在20如下的网站,咱们可以用一个很简略的框架结构来写。在这个规模上,我倡议是运用比力直接的面向过程编码要领,起因很简略,没有须要把class文件弄的n多,后果controller里边就一个new就完了。当然,需求频仍变革的项目除外。在这个级别上,php优点浮现的很明明:疾速开发,高深莫测。缺陷同时也被隐藏得很好。
中型项目---结构柔美的面向对象化的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则作为前端和零碎的胶水,疾速而灵活的把这些粘合起来。