曾经的‘丑小鸭工程’已经转变为一个互联网巨头,感谢灵活、务实和充满活力的开发者社区。
当RasmusLerdorf发布“一个用C写的小型紧凑的CGI可执行程序集合”时,他没有想到他的创造会对网络发展产生多大的影响。今年在Miami举行的SunshinePHP大会上,Lerdorf做了开场演讲,他自嘲到,“在年的时候,我以为我已经在Web上解除了CAPI的束缚。显然,事情并非那样,我们全成了C程序员了。”
实际上,当Lerdorf发布个人主页工具(PersonalHomePageTools,即PHP名字的来源)的1.0版本时,那时的网络还是如此的年轻。直到那年的十一月份HTML2.0还没有公布,而且HTTP/1.0也是次年的五月份才出现。那时,NCSAHTTPd是使用最广泛的网络服务器,而网景的Navigator则是最流行的网络浏览器,八月份的时候,IE1.0才刚刚出现。换句话说,PHP的开端刚好撞上了浏览器战争的前夜。
早些时候,我们谈论了一大堆关于PHP对网络发展的影响。回到那时候,当说到用于网络应用的服务器端处理,我们的选择是有限的。PHP满足了我们对于一种工具的需求,这就是可以使得我们在网络上做一些动态的事情。它的实用的灵活性只受限于我们的想像力,PHP从那时起便与网络共同成长。现在,PHP占据了网络语言的超过80%的份额,已经是成熟的脚本语言,特别适合解决网络问题。她独一无二的血统讲述了一个故事,实用高于理论,解决问题高于纯正。
把我们钩住的网络魔力PHP一开始并不是一门编程语言,从她的设计就很明显不是--或者她本来就缺乏相关特性,正如那些贬低者指出的那样。最初,她是作为一种API帮助网络开发者能够接入底层的C语言封装库。第一个版本是一组小的CGI可执行程序,提供表单处理功能,可以访问查询参数和mSQL数据库。而且她可以如此容易地处理一个网络应用的数据库,证明了其在激发我们对于PHP的兴趣和PHP后来的支配地位的关键作用。
到了第二版--即PHP/FI--数据库的支持已经扩展到包括PostgreSQL、MySQL、Oracle、Sybase等等。她通过封装他们的C语言库来支持各种数据库,将他们作为PHP库的一部分。PHP/FI也封装了GD库,可以创建并管理GIF图像。她可以作为一个Apache模块运行,或者编译进FastCGI支持,并且她引入的PHP编程语言支持变量、数组、语言结构和函数。对于那个时候大多数在网络这块工作的人来说,PHP是我们一直在寻求的那款“胶水”。
当PHP吸纳越来越多的编程语言功能,演变为第三版和之后的版本时,她从来没有失去这种黏合的特性。通过仓库如PECL(PHPExtensionCommunityLibrary),PHP可以把各种库都连在一起,将他们的函数引入到PHP层面。这种将组件结合在一起的能力,成为PHP之美的一个重要方面,使之不会受限于其源代码上。
网络,一个码农们的社区PHP在网络发展上的持续影响并不局限于能用这种语言干什么。PHP如何完成工作,谁参与进来--这些都是PHP传奇中很重要的部分。
早在年,PHP的用户群体开始形成。其中最早的是美国中西部PHP用户组(后来叫做ChiagoPHP),并年二月份的时候举行了第一次聚会。这是一个充满生气、饱含激情的开发者社区形成的开端,聚合成一种吸引力--在网络上的一个小工具就可以帮助他们解决问题。PHP这种普遍存在的特性使得她成为网络开发一个很自然的选择。在分享主导的世界里,她开始盛行,而且低入的门槛对于许多早期的网络开发者来说是十分有吸引力的。
伴随着社区的成长,为开发者带来了一堆工具和资源。这一年是年,出现了PHP的一个转折点,它见证了第一次PHP开发者大会,聚集了编程语言的核心开发者,他们在TelAviv见面,讨论即将到来的4.0版本的发布。PHP扩展和应用仓库(PEAR)也于年发起,它提供了高质量的用户代码包,依据标准和最佳操作。第一届PHP大会PHPKongress不久之后在德国举行。PHPDeveloper.org也随后上线,直到今天,这都是PHP社区里最权威的新闻资源。
这个社区的势头表明了接下来几年里PHP成长的关键所在。随着网络开发产业的爆发,PHP也获得发展。PHP开始为更多、更大的网站提供动力。越来越多的用户群在世界各地开花。邮件列表、在线论坛、IRC、大会,以及如php[architect]、德国PHP杂志、国际PHP杂志等商业杂志--PHP社区的活力在完成网络工作的方式上有极其重要的影响:共同地,开放地,倡导代码共享。
然后,在10年前,PHP5发布后不久,在网络发展史上一个有趣地事情发生了,它导致了PHP社区如何构建库和应用的转变:RubyonRails发布了。
框架的异军突起用于Ruby编程语言的RubyonRails框架在MVC(模型-视图-控制)架构模型上获得了不断增长的焦点与涓鐧界櫆椋庡井鍗?娌荤櫧鐧滈瑗垮畨鍝鍖婚櫌濂?