不过在过去几年当中,php已经发生了一系列变动——从语言本身到相关生态系统再到对开发者社区的支持——这些确实值得我们加以关注。尽管已经抛弃了php并投身于python或者ruby的用户们不太可能在短时间内被吸引回来,但已经有迹象表明确实有人在不遗余力地对php加以完善。下面我们就一同来了解php语言迎来的四大显著改进。
1. 软件包与依赖性管理
直到不久之前,对php软件包进行管理的惟一方式还只能是使用pear(即php扩展与应用程序库)。不过pear在使用难度上长期受到开发人员们的抨击,其中充斥着大量已经过时以及未受维护的软件组件。大多数更为流行的php框架都拥有自己的独特软件包管理系统——例如cakephp的bakery、codeigniter的sparks等——不过它们很少或者几乎无法将php作为整体加以打理。
这方面最大的变化源自composer,它吸取到了node.js的npm系统与ruby的bundler当中的优秀要素。它会以项目作为基础对软件包进行追踪,这样一来开发人员就能更轻松地弄清楚特定项目需要使用哪些软件包并以自动化方式对其加以安装。它与名为packagist的库协同运作,该库中已经包含大量常用php应用、框架以及组件。
2. hack/hhvm
php获得的另外两大最为显著的变化源自php自身体系之外——更准确地说,来自facebook:hack语言与hhvm(即hiphop虚拟机)。前者在继承了php衣钵的同时添加了一系列php默认状态下无法实现的功能,例如静态对象类型。后者则能够将php代码编译为c++代码从而加快其执行速度,最终带来将近十倍于原本的性能水平。二者都属于推出时间相对较短的创新成果,因此它们对于php在长远角度的影响仍然有待观察。不过它们至少显示出主流web服务巨头确实对php显示出浓厚的兴趣与认真的对待态度,并因此将其作为自身选定的平台方案。
3. php-fig
虽然听起来像是种解闷的小零食(fig意为无花果),但这实际上是一个php框架程序组,其中汇总了php开发者们所打造的用于构建开发标准(包括如何以一致性方式开发自己的项目)的技术成果。来自cakephp、drupal、joomla以及sugarcrm等项目的技术人员们已经正式加入该团体,并为多项日常工作提供了标准化机制——其中包括编码风格指南、库登录接口以及如何处理类的自动载入等等。
这个小组可以说是完全自愿加入而且并非正式机构,不过他们希望“随着时间的推移,其涵盖范围能够扩展到更为广泛的项目区划当中。”
4. phpng项目
为php语言本体开发换代版本则是另一个为该语言带来全面提升的优秀思路。这个被称为phpng的php开发分支当中包含诸多改进,旨在明确特定操作需要使用多少内存容量以及完成特定运行效果需要使用多少条机器指令。其中大部分工作都受到php供应商zend技术公司的赞助,后者的php引擎被广泛用于该语言的商用安装方案当中。
当然,其中大部分改进仅仅是为了提升其性能表现而并非改变php语言那备受讥讽的语法特性——遗憾的是,这些问题目前仍没有得到解决的迹象。也许php的下一次重大革新不会像hack那样具备颠覆性效果,而更像是javascript扩展方案那种能够实现原生编译效果的转译语言。
英文:http://www.infoworld.com/t/php-web/4-ways-php-coding-getting-less-painful-245435
