PHP还是不是最好的语言?PHP在2019年 - stitcher.io

栏目: PHP · 发布时间: 6年前

内容简介:你还记得流行的“幸运的是,我之后很快就能切换工作了,更重要的是,自从5. *天以来,PHP成功地发展了很多。今天,我正在向那些不再使用PHP编程,或者陷入遗留项目的人们致敬。剧透:今天有些事情仍然很糟糕,就像几乎每种编程语言都有它的怪癖一样。许多核心功能仍然有不一致的方法签名,仍然有令人困惑的配置设置,仍有许多开发人员在那里写蹩脚的代码 - 因为他们必须,或因为他们不知道更好。

你还记得流行的“ PHP:糟糕设计的分形 ”博客文章吗?我第一次读它时,我工作在遗留 PHP 项​​目中。这篇文章让我想知道我是否应该放弃编程,并去做与编程完全不同的事情。

幸运的是,我之后很快就能切换工作了,更重要的是,自从5. *天以来,PHP成功地发展了很多。今天,我正在向那些不再使用PHP编程,或者陷入遗留项目的人们致敬。

剧透:今天有些事情仍然很糟糕,就像几乎每种编程语言都有它的怪癖一样。许多核心功能仍然有不一致的方法签名,仍然有令人困惑的配置设置,仍有许多开发人员在那里写蹩脚的代码 - 因为他们必须,或因为他们不知道更好。

今天我想看看光明的一面:让我们关注已经发生变化的事情以及编写干净和可维护的PHP代码的方法。我想请你暂时搁置任何偏见。

之后,您可以像以前一样自由地思考PHP。虽然在过去的几年里你会对PHP的一些改进感到惊讶。

发展

  • PHP每年都会通过新版本积极开发
  • 自PHP 5时代以来的性能增加了一倍,即使不是标榜的三倍
  • 有一个非常活跃的框架,包和平台的生态系统
  • PHP在过去几年中添加了许多新功能,并且语言不断发展
  • 像静态分析仪这样的 工具 在过去几年中已经成熟,并且只能保持增长

人们让我展示一些实际的代码。我很高兴地说这是可能的!这 是我的一个爱好项目的 源代码 ,用PHP和 Laravel 编写; 而 这里 是几百个,我们在我们的办公室保持OSS包的列表。两者都是现代PHP项目的好例子。

历史回顾

为了更好地评估,让我们快速回顾一下今天PHP的发布周期。我们现在的PHP为7.3,预计在2019年底为7.4。PHP 8.0将是7.4之后的下一个版本。

自从5. *时代以来,核心团队试图保持每年的发布周期,并且在过去的四年中成功地这样做了。

一般来说,每个新版本都会在两年内得到积极支持,并再获得一年的“安全修复”。目标是激励PHP开发人员尽可能保持最新:例如,每年进行小规模升级比在5.4到7.0之间跳转更容易。

可以在 此处 找到PHP时间轴的活动概述。

最后,PHP 5.6是最新的5. *版本,7.0是下一个版本。如果您想知道PHP 6发生了什么,您可以收听 PHP Roundtable播客

有了这个,让我们揭穿一些关于现代PHP的常见误解。

PHP的性能

5.*版本以前PHP的表现就是......平均水平。但是在7.0版本中,PHP的核心部分从头开始重写,导致性能提升两到三倍。

我们来看看基准。幸运的是,其他人花了很多时间来对PHP性能进行基准测试。我发现 Kinsta 有一个很好的更新列表。

自7.0升级以来,性能大幅度提升。PHP Web应用程序与其他语言中的Web框架相比具有可比性 - 在某些情况下更好 - 性能。看看这个 广泛的基准测试套件

当然PHP框架不会胜过C和Rust,但它们比Rails或Django要好得多,并且与ExpressJS相当。

框架和生态系统

说到框架:PHP不仅仅有WordPress了。让我告诉你一些专业的PHP开发人员:WordPress绝不代表当代生态系统。

一般来说,有两个主要的Web应用程序框架,以及一些较小的Web应用程序框架: SymfonyLaravel 。当然还有Zend,Yii,Cake,Code Igniter等等 - 但是如果你想知道现代PHP开发的样子,你只要掌握这两者中的一个就很好。

这两个框架都有一个庞大的包和产品生态系统。从管理面板和CRM到独立软件包,CI到分析器,Web套接字服务器,排队管理器,支付集成等众多服务; 老实说,列出的内容太多了。

这些框架虽然适用于实际开发。如果您需要纯粹的内容管理,WordPress和CraftCMS等平台只会越来越多地进行改进。

衡量PHP生态系统当前状态的一种方法是查看Packagist,这是PHP的主要软件包存储库。它已呈指数级增长。每天下载量达到2500万次,可以说PHP生态系统不是以前的小型弱势群体。

除了应用程序框架和CMS之外,我们还看到过去几年异步框架的兴起。

这些是用PHP或其他语言编写的框架和服务器,允许用户运行真正的异步PHP。一些例子包括 SwooleAmpReactPHP

由于我们已经进入了异步世界,因此Web套接字和具有大量IO的应用程序之类的东西在PHP世界中实际上已经变得相关。

内部邮件列表 - 核心开发人员讨论语言开发的地方 - 也在谈论核心 添加libuv 。对于那些不了解libuv的人:它是Node.js用来允许其所有异步性的同一个库。

语言本身

虽然async与await尚未推向市场,大量的改进语言本身已经取得了过去几年。这是PHP中新功能的非详尽列表:

当我们讨论语言功能时,我们还要谈谈当今语言的发展过程。虽然社区被允许提出RFC,但是有一个活跃的志愿者核心团队将语言推向前进。

接下来,这些RFC将在“内部”邮件列表中进行讨论,该列表也可以 在线阅读 。在添加新语言功能之前,必须进行投票。核心中只允许至少具有2/3多数的RFC。

可能有大约100人允许投票,但您不需要对每个RFC进行投票。核心团队的成员当然可以投票,他们必须维护代码库。除了他们之外,还有一群人从PHP社区中被单独挑选出来。这些人包括PHP文档的维护者,整个PHP项目的贡献者,以及PHP社区中的杰出开发人员。

虽然大多数核心开发是在自愿的基础上完成的,但是最近 ,JetBrains聘请了 一位核心PHP开发人员Nikita Popov 来全职学习该语言。另一个例子是最近决定 投资Zend框架Linux 基金会。像这样的雇佣和收购确保了PHP未来发展的稳定性。

工具

除了核心本身,我们看到过去几年中围绕它的工具有所增加。我想到的是静态分析仪,如 Psalm ,由Vimeo创建;  PhanPHPStan

这些工具将静态分析您的PHP代码并报告任何类型错误,可能的错误等。在某种程度上,它们提供的功能可以与TypeScript进行比较,但是现在语言没有被转换,因此不允许使用自定义语法。

虽然这意味着我们需要依赖docblocks,但是PHP的原始创建者Rasmus Lerdorf确实提到了向核心 添加静态分析引擎 的想法。虽然会有很多潜力,但这是一项艰巨的任务。

说到转换,并受到JavaScript社区的启发; 已经努力在用户土地中扩展PHP语法。一个名为 Pre 的项目就是这样:允许新的PHP语法转换为普通的PHP代码。

虽然这个想法已经在JavaScript世界中证明了,但如果提供了适当的IDE和静态分析支持,它只能在PHP中工作。这是一个非常有趣的想法,但必须增长才能称之为“主流”

总结

尽管如此,我们仍然可以将PHP视为一种糟糕的语言。虽然这种语言肯定有它的缺点和20年的遗产随之而来; 我可以放心地说,我喜欢和它一起工作。

根据我的经验,我能够创建可靠,可维护和高质量的软件。我工作的客户对最终结果感到满意,就像我一样。

尽管仍然可以用PHP做很多混乱的事情,但我认为如果使用明智和正确的话,它是Web开发的绝佳选择。


以上所述就是小编给大家介绍的《PHP还是不是最好的语言?PHP在2019年 - stitcher.io》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Code Reading

Code Reading

Diomidis Spinellis / Addison-Wesley Professional / 2003-06-06 / USD 64.99

This book is a unique and essential reference that focuses upon the reading and comprehension of existing software code. While code reading is an important task faced by the vast majority of students,......一起来看看 《Code Reading》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

html转js在线工具
html转js在线工具

html转js在线工具