php是最好的语言梗,php 最好的语言

PHP 是一种开源的通用计算机脚本语言,适用于网络开发并可嵌入 HTML 中使用。它的语法借鉴吸收

PHP 是一种开源通用计算机脚本语言,适用于Web 开发,并内置于HTML 中。它的语法融合了C、Java、Perl等流行计算机语言的特点,使得普通程序员很容易学习。然而,它也是一种让很多人不满意的语言,因为它太难使用了。现在让我们来看看这位作者怎么说,他觉得PHP有很多缺陷.

2012年有一个非常受欢迎的博客。 “PHP: 分形设计不当”。作者在文章中批评了PHP,称其是反人类的设计。当我第一次读到这篇文章时,我正在一个无聊的地方处理一堆遗留的PHP 项目。读完这篇文章后,我决定辞去工作,去做一些与编程完全不同的事情。

幸运的是,我很快就换了工作,PHP 自5.* 以来已经增长了很多。今天,我有话要对那些不再使用PHP 编程或坚持传统项目的人们说。

剧透:PHP 与任何编程语言一样,也有自己的怪癖。许多核心函数的方法签名不一致,配置设置仍然不清楚,许多开发人员仍然编写蹩脚的代码,因为他们不得不这样做,或者没有更好的方法。

但今天我想谈谈PHP 的积极方面。了解PHP 的发展以及如何编写干净且可维护的PHP 代码。如果你们能暂时抛开偏见,哪怕只是几分钟,我将不胜感激。完成后,请随意再次将其取出,但您会惊讶地发现PHP 在过去几年中已经增长了很多。

速读

PHP 的新版本每年都在积极开发,与PHP 5 时代相比,其性能至少翻倍,在某些情况下甚至是三倍。该语言中添加了一个非常活跃的框架、包和平台生态系统。在过去的几年里,像静态分析器这样的持续开发工具也已经成熟,并且会越来越多地更新。 难怪有人让我展示一些代码示例。下面是两个例子:我最喜欢的项目之一是用PHP 和Laravel 编写的。另一个是我们办公室维护的数百个OSS 软件包的列表。代码地址为:

https://github.com/brendt/aggregate.stitcher.iohttps://spatie.be/opensource/packages 让我们开始吧。

历史背景

首先,让我们快速浏览一下PHP 的发布周期。当前的PHP 版本是7.3,但7.4 将于2019 年底发布,下一个版本将是PHP 8.0。

自5.* 以来,其核心团队一直努力维持年度发布周期,并在过去四年中成功做到了这一点。

一般来说,每个新版本都有两年的有效支持期,随后还有一年的“安全修复”。目的是鼓励PHP 开发人员尽可能使用最新版本,因为每年进行一次小升级比从5.4 版本跳到7.0 容易得多。

PHP版本时间表如下。

095d253c70484262b216a732a0de046f~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1723188254&x-signature=zx0Tvxead8c%2FdA2NPi9Hb7HDeYc%3D其中,PHP 5.6是5.*时代的最新版本,下一个版本是7.0。如果您想了解PHP 6 发生了什么,可以收听PHP 圆桌播客。

https://www.phproundtable.com/episode/what-happened-to-php-6

考虑到这一点,我们可以仔细看看有关PHP 的常见误解。

PHP 性能

PHP 在5.* 时代的性能充其量只是平均水平,但在7.0 中,PHP 核心的大部分内容被完全重写,导致性能提升了2-3 倍。

你不能只是说说而已,然后付诸实践。基准测试结果不言自明。有人对PHP 性能进行了基准测试,这些测试在Kinsta 上有详细记录。

PHP Benchmarks: Real-World Speed Tests for Versions 8.1, 8.2, and 8.3

自推出7.0 以来,PHP 性能有所提高。 PHP Web 应用程序的性能与其他语言的Web 框架相当(在某些情况下甚至更好)。如果您不相信我,请看一下这个通用基准测试包。

https://github.com/thebenchmarker/webframeworks

PHP 框架并不比C 或Rust 好,但比Rails 和Django 好得多,并且可以与ExpressJS 相媲美。

框架和生态系统

说到框架,PHP 不再只是WordPress。作为一名专业的PHP开发人员,我不得不这么说。 WordPress 并不代表当今存在的生态系统。

通常有两个主要的Web 应用程序框架和一些较小的框架,例如Symfony 和Laravel。当然还有Zend、Yii、Cake、Code Igniter等,但这是当今代表PHP的仅有的两个主要框架。

这两个框架都有一个庞大的软件包和产品生态系统。我们可以提供很多东西,从管理面板和CRM 到独立软件包、CI、分析器、Web 套接字服务器、队列管理器、支付集成以及许多其他服务。

然而,这些框架是为了现实世界的开发而设计的。如果您想要纯粹的内容管理,WordPress 和CraftCMS 等平台正变得越来越好。

测试PHP 生态系统当前状态的一种方法是查看Packagist,PHP 的主要包存储库。下载量正在迅速增加,每天的下载量约为2500万次。公平地说,PHP 生态系统不再像以前那样是个小输家。

下图显示了随时间变化的软件包和版本数量。

5f74da4ec8284e3aa1e5264a0f13c3b8~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1723188254&x-signature=fbYFkyLiedOfXZEDstzLt3d%2F1Mg%3D除了应用框架和CMS之外,异步框架近年来也逐渐兴起。

这些框架和服务器是用PHP或其他语言编写的,并允许用户通过这些框架实现真正的异步PHP。 Swoole、Amp 和ReactPHP 都是很好的例子。

自从我们进入异步世界以来,Web 套接字和IO 密集型应用程序等事物就一直与PHP 世界相关。

内部邮件列表上也有关于将libuv 添加到内核的讨论(内核开发人员讨论如何开发该语言)。

语言本身

尽管异步和等待功能尚不可用,但PHP 语言本身在过去几年中已经经历了许多改进。以下是PHP 的一些新功能。

短闭包空合并运算符TraitTyped 属性扩展运算符JIT 编译器FFI 匿名类返回类型声明除了现代密码生成器语言的特性之外,您还应该关注语言的开发过程。社区还提出了RFC,但活跃的核心志愿者群体是推动语言发展的基础。

这些RFC 在“内部”邮件列表上进行讨论。要添加新的语言功能,RFC 必须经过投票并获得至少2/3 的支持才能写入内核。

大约100 人拥有投票权,但并不要求他们对每个RFC 进行投票。这些人应该包括维护代码库的核心团队成员。剩下的投票者主要来自PHP 社区,包括PHP 文档的维护者、整个PHP 项目的贡献者以及PHP 社区的杰出开发人员。

尽管大多数核心开发都是自主完成的,但我们的核心PHP 开发人员之一Nikita Popov 最近被JetBrains 聘用,成为一名全职PHP 开发人员。此外,Linux 基金会最近决定投资Zend 框架。这些聘用和收购将确保PHP 未来的稳定性。

工具包

除了程序核心本身之外,PHP 工具包的数量也在不断增长。静态分析器Psalm(由Vimeo 提供)、Phan 和PHPStan 就是很好的例子。

这些工具可以对PHP 代码进行静态分析并报告各种错误、可能的错误等。在某些方面,它们几乎与TypeScript 一样强大,但该语言目前没有源到源编译,因此不允许自定义语法。

虽然这意味着必须依赖docblocks,但PHP 的原始创建者Rasmus Lerdorf 提到了向内核添加静态分析引擎的想法。这个想法有很大的潜力,但这是一项艰巨的任务。

PHP 开发人员也一直在努力扩展用户端PHP 语法,以实现像JavaScript 一样的源到源编译。一个名为Pre 的项目就是这样做的。将新的PHP 语法转换为常规PHP 代码。

这个想法已经在JavaScript 中实现,但只有在提供合适的IDE 和静态分析支持的情况下,它才能在PHP 中工作。这个想法很有趣,但在成为“主流”之前需要继续发展。

结论

话虽这么说,你可以抱怨PHP 是一种蹩脚的语言。尽管它仍然存在一些缺陷并且有20 年的历史,但我仍然喜欢这门语言。

根据我的经验,它生产的软件可靠、易于维护且质量高。我和我的客户都对最终结果感到满意。

尽管PHP仍然存在一些问题,但我认为如果使用得当,它对于Web开发来说是一个不错的选择。

原文链接:https://stitcher.io/blog/php-in-2019

原创文章,作者:共创,如若转载,请注明出处:https://www.sudun.com/ask/94532.html

(0)
共创's avatar共创
上一篇 2024年8月2日 下午3:22
下一篇 2024年8月2日 下午3:24

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注