PHP的阵营向来有两种声音,一个说“PHP是世界上最好的语言”,一个说“PHP出于糟糕的设计”,如今对于说这些的,其实咱们正常人早就麻木了,这里的正常人,指的是正常工做的程序员,由于咱们知道,只有啥都不懂,喜欢打嘴炮的新手,才去跟风这些说法,真正忙的人没工夫理会这些,咱们只想把事情作好。php
固然,更重要的是,随着咱们的成长,PHP也在成长,今天的PHP已经不是过去的那个PHP了,PHP自从5.*时代已经进化了不少,咱们愈来愈喜欢用“现代PHP”来称呼它。vue
固然了,任何一个语言都有其糟糕的一面,PHP也不例外:不少核心函数依然有不统一的方法,仍然有使人困惑的配置参数,最难办的是,依然有大量的开发者在写着糟糕的代码,他们可能不得不这样,或者单纯不知道怎样能够写的更好。java
今天,咱们想用最新的数据和视角,来看看PHP 2019的现状,看看可否刨除些以往的偏见,或者给咱们增添更多的信心。咱们想更多关注那些PHP已经改变了的方面,更多关注PHP如何让咱们可以写出简洁、易于维护的代码。相信,若是以往PHP曾给你留下过很差的印象,今天你会惊讶于PHP这些年来的改进和完善:node
{id="history"}python
PHP如今的最新版本是7.3, 7.4将会在2019年底发布,PHP 8.0是7.4以后的下个版本。laravel
自从5.*时代以来,核心团队尽可能保持着年度版本发布的频率,而且在过去的四年里成功作到了这一点。git
通常来讲,每个新的版本都会有两年的活跃支持,而后再有一年的安全支持。这样作的目的,是想促使PHP开发者们尽可能跟上最新的版本,由于每一年更新一下版本,只涉及小的改动,这就比跨越好几个版本去升级要容易的多,好比说一会儿从5.4升到7.0,这期间你就没法肯定会经历什么了。程序员
若是你想看PHP现阶段的支持周期,能够看看这个官方连接://www.php.net/supported-versions.phpgithub
{id="performance"}web
在5.*的时代,PHP的性能只能往好了算是平均水平,可是到了7.0,大量的PHP核心代码进行了从头的重写,最终带来了两倍或三倍的性能提高。PHP之父 Rasmus Lerdorf 曾在2018年说,PHP 7.0删掉了原先三分之一的代码,同时保持着对以前版本的兼容,没有所以丢掉任何功能,并且这只是重构,尚未搞JIT和HHVM,没开始用特殊或极端的性能提高手段。由此,咱们也彻底能够预期,将来版本的PHP,依然有巨大的性能提高空间。
固然空说无凭,能够看一些测试数据,庆幸的是不少人都已经测评过PHP的性能了
若是你想看更多PHP框架或cms在不一样版本PHP之间的测评数据,能够看看这个文章://kinsta.com/blog/php-benchmarks/
因为PHP 7的巨大性能提高,PHP的不少web程序和框架,就能够和其余语言的web框架进行对比了,甚至在不少地方,还要比其余语言的要更好。一样的,能够看看下面的详尽测评:
这是一个框架延迟性的测评,能够看到PHP的流行框架是处在绝对前列的,在这方面java、go、python的一些框架,不少都是垫底的,尤为是国内在乱追捧的django直接垫底。
这是每秒请求数据,PHP依然要比rails、django、flask这些要高的多,它们依然几乎是垫底的,因此就很不理解国内那些忽悠小白拿django搞web开发的了,请珍重。
想看更多web框架测评数据的,能够看看这个//github.com/the-benchmarker/web-frameworks仓库,上面两个表格截图均是来自这里。
固然了,PHP框架确定比不了C语言的,以及新一代C,也即Rust,但他们广泛比Rails和Django这些要好很是多,也可以跟ExpressJS相对比。
{id="frameworks"}
原来咱们提PHP,就必须得提wordpress,全球60%以上的网站都曾是wordpress的,固然如今这个数据确定依然不低。可是如今,对任何专业的PHP开发者来讲,wordpress已经再也不可以表明PHP的生态了,绝对不能。
通常而言,如今PHP界主要有两大主流PHP框架:Symfony 和 Laravel,而后还有一些小一些、不那么流行的。固然了,还有Zend, Yii, Cake, Code Igniter这些,可是若是你想知道现代PHP开发的真实样子,你最好擅长这两个主流之一。
这两个框架都有其从组件到产品的庞大生态,不管是后台系统、CRM系统,仍是单独的组件,从CI到侧写工具,数不尽的web服务,好比sockets服务、队列管理服务、支付集成方案等。说实在的,根本太多了,没法列举。
固然,这两个框架都是须要进行定制和开发的,若是你只是须要个纯净的内容管理系统,那么WordPress或者CraftCMS依然是不错的选择,它们自己也在愈来愈好。
要观察PHP目前生态的一个方法是,去看看Packagist这个站点,也即PHP组件的官方仓库平台。它这些年经历了爆炸性增加,天天有2500百万的下载量,这样的一个庞大的活跃量,谁也不能说PHP是弱势的,只是搞小项目的。
下图是一个来自Packagist的组件下载增加趋势:
除了框架和CMS,过去几年里,咱们也能看到异步框架的成长。有不少框架或服务,用PHP或其它语言写的,可以容许咱们运行真正的异步PHP,一些知名的包括Swoole, Amp 和 ReactPHP。
因为咱们已经开始了异步世界的探险,例如web sockets或者有大量IO的应用,这些在PHP世界里愈来愈是个事儿了,愈来愈相关了。
固然了,在PHP核心开发团队的内部邮件列表里,已经在讨论将libuv添加到PHP核心中,libuv就是nodejs异步功能所依赖的底层库。
{id="itself"}
虽然目前async和await功能还没添加上,可是过去几年间,不少改进都加到了PHP里,下面是一个不彻底的PHP新特性列表:
除了语言特性,让咱们也来看看现在PHP的核心开发过程:有一个活跃的核心志愿者团队,他们推进着PHP语言开发和前进,同时社区成员也能够提出RFC。
接下来,这些RFC 会在“内部”邮件列表中讨论,邮件列表能够在线阅读。在新的语言特性被添加以前,必须进行投票。只有获得三分之二支持的RFC才被容许添加进核心。
容许投票的可能有约100人,可是并不要求每一个人都对每一个RFC投票。核心团队的成员固然能够投票,由于他们必须维护代码库。除了他们以外,还有从PHP社区中单独挑选出来的人能够投票。这些人包括PHP文档的维护者、整个PHP项目的贡献者以及PHP社区中的杰出开发人员。
虽然大多数核心开发都是在自愿的基础上完成的,但最近JetBrains雇佣了一名核心成员Nikita Popov来作全职开发工做。另外一个例子是Linux基金会最近决定投资Zend Framework开源框架。这样的雇佣和注资确保了PHP将来发展的稳定性。
{id="tools"}
除了PHP核心自己,在过去的几年里,咱们也看到了相关工具的增长。首先咱们想到的是静态代码分析工具,像Vimeo团队开发的Psalm,以及Phan和PHPStan。
这些工具将静态分析你的PHP代码并报告任何类型错误,以及可能致使的bug等等。在某种程度上,它们提供的功能能够与TypeScript相媲美,尽管PHP如今不提供编译转换(transpile),因此不能用自定义语法。
尽管这意味着咱们须要依赖docblocks,可是PHP之父Rasmus Lerdorf确实提到了在核心中添加静态分析引擎的想法。虽然潜力巨大,但这也是一项艰巨的任务。
说到编译转换(transpiling),这是受到JavaScript 社区的启发,目前 已经有人开始自行扩展PHP语法格式,一个名为Pre的项目就是这样作的,它容许新的PHP语法格式转换为普通的 PHP 代码。
虽然这个想法已经在 JavaScript 中被证实可行,可是只有先提供了适当的IDE和静态分析支持,它才能在PHP中工做。这是一个很是有趣的想法,但它必须经历一个成长过程才能称为“主流”。
{id="conclusion"}
固然了,语言只是个工具,而好的编程实践是与具体的某一门语言无关的,糟糕的代码不管放到哪一个框架和语言里,都依然是糟糕的代码。固然这一点,可能在PHP这里更突出一些,不少人依然在用PHP乱搞,尤为是在国内,但愿他们能快速成长,经历一些严肃系统的学习,而不是一直本身乱倒腾,或者知足于网上些免费但糟糕的教程,就觉得那是真正的编程自己。
做为严肃的PHP开发者,尤为是现现在借助于laravel,咱们能够很自豪地说,咱们可以用PHP来开发优雅的、可靠的、可维护的和高质量的web应用,咱们的雇主与客户也都同样,他们对最终的结果都很是满意。
若是你是一个web编程爱好者,还在观望是否要用PHP,或者在忍受一些PHP的糟糕代码,或者干脆不知道怎样才能接触到简洁优雅的现代PHP,包括说你已经知道laravel了,可是仍是没法体验起真正的优雅,那么咱们极力向你推荐这门国内最好的laravel入门兼实践课程《Laravel优雅实战入门:第二版》,
课程是从16年就开始开发的,历时两年,目前已经升级到了第二版,用的是新近的laravel 5.7,彻底兼容最新的laravel 5.8,最关键的是,这里面教的,彻底都是最正宗最优雅的laravel用法,到处教你如何用一两行代码解决正常的逻辑,让你从一开始就养成好的代码习惯,今后跟乱糟糟的代码说再见。两年里,咱们的课程已经帮助上千名小伙伴走上laravel优雅之路,不少小伙伴由于这个课程找到了本身满意的工做,下一个会是你吗?
固然了,若是你以为本身已经有足够的基础了,laravel用的像模像样了,也能够关注咱们进阶课程,咱们还有laravel和vuejs结合开发的课程《Laravel&Vue深度整合实战第二版》,
更有很是高级的laravel源码分析兼实战课程《Laravel底层实战兼核心源码解析》,
这还不止的,更多精品好课欢迎到个人网易课堂主页查看【霹雳神主页】
更进一步的,若是你更厉害,或者更愿意学习,未来想成为行业大神,那么咱们还给你准备了更高级的【国际IT专场会议】,在这里咱们为你翻译整理了IT界的各大国际会议,PHP的做者、laravel的做者、symfony的做者等等国际顶尖大牛亲自给你讲解IT技术,多学习几个之后,你以为本身离大神还远吗?专场连接:www.pilishen.com/casts
本文翻译和改编自//stitcher.io/blog/php-in-2019