php是一个什么原因出现的呢?它是一个技术人员希望能用一个快速的方面来完成他自己的个人主页中的一个小应用。而在他一发不可收时出现了php,它使一个人能在多种操作系统下迅速的完成一个轻型的web应用。所以在短短的几年里,php迅速的升级了它的版本,同时在gnu的世界里找到了一个青梅竹马的伙伴----apache。这终于让php有了基础,能在一个最佳的环境中运行,同时由于两个产品都是公开源代码的产品,所以大家可以使用它们的源代码将这两个产品用最完美的方式结合到一起,使用起来就如一个产品一样。个人认为php是自由软件在web应用平台上一个决胜的工具,如果没有php的出现,还会有许多人认为自由软件就代表了对开发人员的高技术要求、难记的代码、复杂的工具.....php使一个会使用basic的人员在极短的时间里快迅学习并完成用户需要的应用。
怎么说php呢?如果说asp是一个com,哪么php说的更精确了可以说php是一个纯粹的script翻译器。这也是php由3升级为4的一个重大原因,在4这个版本里它重写了语法分析器,从而加快了php整体的效能。而且从中你也就会明白为什么php需要支持这种或是那种扩充功能时它一定要与相应系统的lib库进行再编绎的原因。正因为它是正宗的“翻译器”,所以它是将script翻译成为需要执行的函数,再去执行它们,外部扩充不能由一些“动态加载”的方式进行,所以只能静态的编绎进php中(这只能在windows中除外)。
强势:
1、一种能快速学习、跨平台、有良好数据库交互能力的开发语言。asp比不上它的就是这种跨平台能力了,而正是它的这种能力让unix/linux有了一种与asp媲美的开发语言。语法简单、书写容易、现在市面上也有了大量的书,同时internet上也有大量的代码可以共享,对于一个初学者想学些“高深的unix”下的开发来说是一个决好的入手点。
2、与apache及其它扩展库结合紧密。php与apache可以以静态编绎的方式结合起来,而与其它的扩展库也可以用这样的方式结合(除外的就是windows平台了)。这样的方式的最大的好处就是最大化的利用了cpu时和内存,同时极为有效的利用了apache的高性能的吞吐能力。同时外部的扩展也是静态连编,从而达到了最快的运行速度。由于与数据库的接口也使用了这样的方式,所以使用的是本地化的调用,这也让数据库发挥了最佳效能。
3、良好的安全性。由于php本身的代码开放所以它的代码在许多工程师手中进行了检测,同时它与apache编绎在一起的方式也可以让它具有灵活的安全设定。所以到现在为止,php具有了公认的安全性能。
弱势:
1、数据库支持的极大变化。由于php的所有的扩展接口都是独立团队开发完成的,同时在开发时为了形成相应数据的个性化操作,所以php虽然支持许多数据库,可是针对每种数据库的开发语言都完全不同。这样形成针对一种数据库的工发工作,在数据库进行升级后需要开发人员进行几乎全部的代码更改工作。而为了让应用支持更多种的数据库,就需要开发人员将同样的数据库操作使用不同的代码写出n种代码库出来,让程序员的工作量大大增大。
2、安装复杂。由于php的每一种扩充模块并不是完全由php本身来完成,需要许多外部的应用库,如图形需要gd库、ldap需要ldap库.……这样在安装完成相应的应用后,再联编进php中来。这也就是我以前在代码联盟新闻组中对网友所说的一定要在freebsd/linux/unix下运行php的原因。只有在这些环境下才能方便的编绎对应的扩展库。这些都是一般开发人员在使用php前所先要面对的问题,正是这样的问题让许多开发人员转而使用其它的开发语言,必竟unix没有那么多的用户。
3、缺少企业级的支持。没有组件的支持,哪么所有的扩充就只能依靠php开发组所给出的接口,事实上这样的接口还不够多。同时难以将集群、应用服务器这样的特性加入到系统中去。而一个大型的站点或是一个企业级的应用一定需要这样的支持的。注:在php的4.0版本以后加入了对servlet/javabean的支持,也许这样的支持会在以后的版本中更加增强,也许这样的支持会是php以后的企业级支持的起点。
4、缺少正规的商业支持。这也是自由软件一向的缺点,我想在国内php的开发人员正在快速增加,相信在不久的将来,这样的支持能多起来。
5、无法实现商品化应用的开发。由于php没有任何编绎性的开发工作,所有的开发都是基于脚本技术来完成的。所以所有的源代码都无法编译,所以做完成的应用只能是自己或是内部使用,无法实现商品化。
总结:
适用人群:熟悉unix环境,需要在最少的投入下完成快速的应用开发。
适用平台:freebsd/linux/unix操作系统、apache服务器适用应用:internet高访问量、快速数据库开发的应用。
学习方式:internet上国内丰富的资源internet上丰富的源代码资源,完全可以参考这样的例程来完成自己的应用。市场上最近出版的好几本php手册。
推荐开发工具:home site/phped
推荐开发环境:freebsd 4.1/redhat 6.1操作系统/apache 1.3.12/mysql 3.22/p 200/64m ram/9g hd
推荐应用环境(最少):freebsd 3.5/mysql 3.22/apache 1.3.12/p 200/128m ram/9g hd
推荐应用环境(最佳):freebsd 3.5/sybase 11/apache 1.3.12/p iii 500/512m ram/18g hd