PHP7终于发布:开发者会选择PHP7吗?
2015-12-10 14:35:15 | 来源:玩转帮会 | 投稿:佚名 | 编辑:小柯

原标题:PHP7终于发布:开发者会选择PHP7吗?

  大家可以通过阅读本文,学习关于PHP7.0的五个方面的内容:PHP7.0简介、主要新特性、过去几周关于程序员是否采用php7.0的意愿调查结果、以上调查结果的分析、以及对PHP未来版本的期待。

  (一)PHP7简介

  PHP7是11年来首次发布的PHP主版本,PHP上一次发布主版本是在2004年,当时发布的是PHP5.0.0。

  与这次PHP核心开发人员沉睡已久不同,PHP6曾立志要让PHP支持Unicode字符串。然而开发停滞不前,PHP6计划在2010年被取消了。

  自那以后虽然也有一些带着重要新特性的PHP版本发布,比如PHP5.4,但没有哪个真正称得上主版本。

  直到2010年Facebook为HipHop编译器揭开面纱。这款编译器可以将PHP转为C++代码,再转为本地机器码,用C++编译器编译。尽管这个想法很好,也改进了PHP的性能,但不实用,因为本地机器码编译PHP脚本耗时太久。

  之后Facebook换了另一种方法,他们开发了HHVM(HipHopVirtualMachine),通过JITengine(JustInTime)将PHP代码转换为本地机器码。这使得所耗时间大大减少并且性能得到显著改进。

  很显然,Facebook不满意PHP的特性,于是在2014年启动Hack项目,它源于PHP语言却有着很多PHP没有的特性,比如对所有数据类型都进行更严格的类型检查,以及支持内置异步编程。

  不久后Zend的DmitryStogov发布了PHP的一个名为PHPNG的分支。

  (二)PHP7的主要新特性

  PHPNG的初衷是做调查,调查JITengine的引入将对基于PHP版本的ZendEngine有何影响。然而,随着进一步的研究他发现,其他方面的改进能让PHP代码运行得更快。

  PHPNG是PHP7的基础,起名叫PHPNG是为了避免与被取消的PHP6混淆。

  PHP7新增的其他功能包括:标量值的严格类型、匿名类、嵌套类、编译PHP引擎的可能性以及特定程序优化,好比Wordpress使用了PerformanceGuidedOptimizations(PGO)。

  PHP7.0本来计划在10月发布,但是因为一些严重的bug所以推迟到了十二月。

  (三)PHP7接受程度调查结果分析

  PHP7的发布是PHP世界近年来最令人激动的事之一,因为对其功能有太多的期待,比如上文提到的那些。

  许多开发者迫不及待地使用PHP7,但不是每个人都能正确地使用它。接下来这个调查就是用于评估PHP程序员是否愿意采用PHP7。

  调查主要围绕三个问题:

  1. 你是否打算在你的生产中使用PHP7?
  2. 你是否打算在你的开发环境中使用PHP7?
  3. 你生产中所使用的最新版的PHP是哪个?

  526位开发者参与该调查,所以以下结果应该能代表许多PHP程序员的真实反应:

  1.你是否打算在你的生产中使用PHP7?

是的,从7.0.0的第一个稳定版上线之前我就开始用了。

21

4%

是的,我打算在官方7.0.0版本发布后使用。

104

19.8%

是的,我将会在官方发布几周后使用。

196

37.3%

不一定,取决于我的客户。

44

8.4%

不会,不会很快就用,因为迁移代码需要太多时间。

58

11%

不会,我只打算在将来的项目中使用。

64

12.2%

不会,除非我的公司强迫我使用,并且不再提供旧的版本。

20

3.8%

其他

19

3.6%

  2.你是否打算在你的开发环境中使用PHP7?

是的,我一直在使用着。

41

7.8%

是的,为了测试它的新特性,我试了几次。

60

11.4%

是的,只要官方7.0.0版本发布我就会开始使用。

218

41.4%

是的,我将会等待几周至几个月,直到我有更多的时间去检查它

112

21.3%

这取决于我的客户

11

2.1%

不会,现在不会使用,我只计划在将来的项目中使用

62

11.8%

不会,除非我的公司强迫我使用它,并且我需要修改我的代码

13

2.5%

其他

9

2.7%

  3.你生产中所使用的最新版PHP是哪个?

PHP7.0

10

1.9%

PHP5.6

299

56.8%

PHP5.5

111

21.1%

PHP5.4

59

11.2%

PHP5.3

38

7.2%

PHP5.2

5

1%

PHP5.1

0

0%

PHP5.0

1

0.2%

PHP4

0

0%

其他

3

0.6%

  (四)PHP7调查结果分析

  从第一个问题可看出绝大多数程序员不是早期使用者。他们想使用PHP7但需要过一段时间等PHP7稳定后再用。

  尽管有8个候选发布版本,并且PHP测试小组评估PHP通过全部测试的可能性很大,但开发者也知道应该会有些bug和向后不兼容的更改存在,这些会导致程序员花费相当长的时间,用于PHP的最终修复或者基于开发者需要去修改代码。

  另外,还有一部分的程序员只想在新项目中使用PHP7,因为目前正在进行的这些项目非常重要,因此不能被PHP7可能出现的错误影响。

  第二个问题是关于PHP程序员对PHP7的好奇心有多重。结果显示大部分程序员愿意在开发环境中测试PHP7,因为这样更安全。

  程序员们已经能够想象一旦他们的代码出现问题,等待他们修复的工作量该是多么的惊人,尤其是那些自己拥有测试套件的程序员,因为他们可能已经看到有很多的测试显示失败。

  第三个即最后一个问题,显示了程序员们正在使用的PHP版本有多新。

  有一小部分的人正在勇敢地在生产中使用PHP7。虽然我认为他们不大可能在非常重要的项目中使用PHP7开发。

  数据显示了个好消息,绝大部分程序员已经开始使用PHP5.6了。而且在最坏的情况下他们仍然使用PHP5.3。这有可能是因为他们的公司不提供其他的版本,或者是因为新版本不适用于他们的代码。

  如今几乎每个人使用的版本都不低于PHP5.3.11,因为更老的版本里有致命的bug,这些可能会导致你的服务器崩溃。

  也许你很好奇那3位选择“其他”的开发者使用的是什么,事实上只有一位准确说了正在使用的是HHVM。为了使用HHVM你需要控制你的托管环境并且需要手工编译它。然而,绝大多数程序员不可能这么做或者没这技术。

  (五)PHP7的未来

  现在PHP7已经正式发布了,你也许会很好奇下一步是什么。以下是一些已在计划内以及我们猜想的特性。

  一些新特性的计划我们已经在“LatelyinPHPPodcast”中讨论过了。如果你很好奇,你可以追随博客音频或者订阅YouTube频道来获取关于PHP的最新功能的讨论。

  1.PCO是加密的PDO

  我们已经知道的是会有一个抽象扩展,名为PCO,这个类似于PDO但是有密码。

  2.PHP静态代码分析器

  RasmusLerdorf还开发了一个工具叫PHAN,这是个PHP静态代码分析器。目的是仅通过分析你的PHP代码而不去运行代码,就检测出可能存在的bug。该工具利用了PHP7中新的AST(抽象语法树)扩展。

  3.带asyncandawait的异步编程

  另一种可能性是,PHP使用asyncandawait构造,以提供更好的内置异步编程支持。这使你能够在同一个脚本中运行多并行任务,而不需要等一个任务执行一个任务。

  请不要将异步编程与多线程编程混淆。PHP已经可以使用pthreadsextension.执行多线程编程了。

  Asyncandawait构造最大的优势是不再需要你处理callbackhell。这意味着如果你需要等待一些异步操作,比如访问文件系统、数据库或远程服务器,你只需要使用等待关键字,那么异步操作完成后,脚本将会继续操作下一个语句。

  Asyncandawait构造关键字需要PHP有一些重要的改变,因为它需要处理内部事件循环。然而,PHP开发者已经开始讨论,实施asyncandawait以及关键字的构造可能性,因为这些关键字应该在其他开发者开始使用之前被保存。

  此外,FacebookHack语言也支持asyncandawait。我猜测Facebook是想为PHP程序员带来具有asyncandawait功能的PHP。

  也许你怀疑PHP需要这些构造的必要性,但是一旦你了解他们的优点后,你就会知道他们的重要性。

  很多程序员转移到Node.js,因为Node.js支持异步编程。Node.js目前还不支持asyncandawait关键字,但也只是时间问题,因为asyncandawait也是EcmaScript7的新特性之一,而且将来的Node.js将使用基于EcmaScript7的JavaScript。

  这样的开发被认为更加重要,特别是在Wordpress近期宣布尽可能多的将代码(从php)移植到JavaScript,包括在服务器端(从php)移植到Node.js和React框架。

  显然这是他们对服务器最大利用化的一步,该服务器托管着Wordpress.comblogs。我不知道WordPress社区是否会接受这项目,因为有成千上万的插件依赖于PHP。

  4.独立的Web服务器

  PHP有一个独立的Web服务器,但不推荐给生产环境。

  一旦PHP支持内置异步编程,那用它开发HTTPWeb服务将更容易,哪怕用纯PHP编写,就像是在用Node.js一样。

  这使得PHP的功能更灵活,处理并行请求更高效使用更少内存,尤其是在合并异步编程和基于pthreads的多线程编程后之后。

  (六)总结

  PHP7是巨大的飞跃,但世界在不停旋转,因此PHP也必须跟上新趋势,比如上文提到的那些。

  我们还是要祝贺所有付出时间和精力的开发者,因为是他们使PHP如此优秀,比如PHP7。

  如果你喜欢本文,或者想问一些和PHP7新特性有关的问题并收获回复,请在下方评论。

  原文链接:PHP 7 Release Date Arrived: Will Developers Adopt PHP 7?译者/王苇棋

tags:

上一篇  下一篇

相关:

模特李璐被害现场照片 李璐被害原因正在调查中

李璐遇害现场照片

23岁美女模特遭杀害,凶手竟是其前男友。近日,一则寻人信息在温州模特界的朋

商务部公告2015年第67号 关于原产于美国、欧盟和日本的进口未漂白纸袋纸反倾销调查初步裁定的公告

文件名称:商务部公告2015年第67号 关于原产于美国、欧盟和日本的进口未漂白纸袋纸反倾销调查初步裁定的公告

80周年调查

(还是最爱二十年前的这些阿姨啊。咦,这次怎幺不是年级顺了)问:宝冢歌剧团迎来了80周年,你自己的主题是

哪些JavaScriptIDE最好用?

  阅读本文之前,分享大家一张图片,看图会发现JavaScript开发需求最高,占比达到42.84%,因此掌握JavaS

「实验狗」横尸医学院楼顶,学校做错了,学生更不该护短

就我所了解的实验动物规范,动物实验结束后:1. 要对实验动物进行人道处死,对犬类这种大型哺乳动物一般是先

孩子的情绪就像过山车,父母要如何应对?

出品:科普中国制作:知我(Know Yourself)教育科普创作团队监制:中国科学院计算机网络信息中心Heather 是

「匿名者」扬言攻击政府网站 调查局反呛

? 1995 - 2015 China Times Inc. 请尊重智慧财产权勿任意转载违者依法必究。

e租宝调查门发酵:媒体称警察进入其北京总部

图为安联大厦门口的警车(图片来源:P2P观察网)  新浪财经讯 12月8日消息,据P2P观察网报道,今日下午数名

扎克伯格那个专抄别家创意的创意实验室关门了

近两年前,员工规模已达6000人的巨头Facebook为了重拾往日创业团队般的创造力与敏锐性,发起了一个名为“创

解密2016温馨提醒的疯传:流行是种病!

这两天朋友圈真的很不消停,刚刚有朋友信誓旦旦的在群里说再也不看朋友圈了,都是那个点击看文章 惹的祸,各

站长推荐: