为什么 PHP 在 2024 年会越来越受欢迎:经典语言的意外回归

news/2024/12/29 18:17:23/文章来源:https://www.cnblogs.com/dengcao/p/18547675

 

2024 年,PHP 出人意料地卷土重来,这得益于重大的性能改进、现代功能和蓬勃发展的生态系统。

在 Laravel 等框架的引领和广泛的托管支持下,PHP 已成为强大、快速且可靠的 Web 开发选择,这些证明它远未过时。

二十多年来,PHP 一直是 Web 开发的基石,为数百万个网站和 Web 应用程序提供支持,其中包括 Facebook 和 Wikipedia 等巨头。有一段时间,PHP 的声誉有些问题,许多开发人员和技术专家预测它会衰落甚至死去,而 JavaScript(带有 Node.js)、Python 或 Ruby 等新语言将受到青睐。然而,现在已经是 2024 年了,PHP 不仅还活着,而且再次蓬勃发展。

那么发生了什么?为什么 PHP 越来越受欢迎,尤其是在许多人准备放弃它的时候?在本文中,我们将探讨 PHP 回归的一些关键原因,以及如果您是开发人员或希望构建强大的 Web 应用程序的企业,为什么你可能需要重新考虑它。

1.现代 PHP 快速而高效

PHP 过去饱受诟病的主要原因之一是其性能问题。

然而,自 2015 年发布 PHP 7 以及随后的 PHP 8 及后续版本改进以来,该语言的性能得到了大幅提升。这些更新大大减少了内存使用量和执行时间,使 PHP 成为可用于 Web 开发的最快的脚本语言之一。

事实上,基准测试显示,PHP 8.2(于 2023 年 12 月发布)比几年前的 PHP 5.x 快近三倍。性能改进,加上 PHP 的低门槛和广泛的托管可用性,使其成为构建高流量应用程序的绝佳选择,而无需花费大量服务器成本。

2. PHP 8 的功能正在改变游戏规则

PHP 8 和 8.1 引入了新的现代功能,使该语言更加强大、安全且易于使用。一些主要功能包括:

JIT(即时)编译:JIT 通过在运行时将 PHP 代码编译为机器代码来优化 PHP 代码的执行,从而大大提高某些任务的性能。

联合类型和命名参数:这些新的类型特性使 PHP 代码更加可预测和可维护,缩小了与 Java 或 C# 等强类型语言之间的差距。

属性(注释):这些允许开发人员向他们的类和方法添加元数据,这使得像 Symfony 和 Laravel 这样的框架更加强大和直观。

这些现代特性使 PHP 更像是一种满足当今 Web 开发需求的一流语言,使其与新技术保持相关性和竞争力。

3. Laravel 持续占据主导地位

近年来,PHP 最大的优势之一是其生态系统,没有哪个框架比Laravel对 PHP 的现代相关性贡献更大。

Laravel 是当今世界最受欢迎的 PHP 框架,它通过提供以下功能,使开发人员的 PHP 开发更快、更轻松、更愉快:有简洁优雅的语法,用于路由、身份验证和数据库管理的集成工具

丰富的软件包库可用于扩展功能,还有一个充满活力、活跃的社区,不断突破 PHP 的极限。

Laravel 的影响力如此强大,以至于许多原本可能避开 PHP 的开发人员都因为该框架的生产力优势而接受了它。随着每个新版本的推出,Laravel 继续吸引新手和经验丰富的开发人员。

4. PHP 生态系统正在不断发展

除了 Laravel,更广泛的 PHP 生态系统也生机勃勃、不断发展着。

PHP 的软件包管理器 Composer 已成为现代 PHP 开发的核心部分,提供对数千个库和工具的访问。随着高质量开源软件包数量的不断增加,PHP 开发人员在构建应用程序时拥有了一个充满活力的生态系统可供借鉴。

此外, RoadRunner(高性能 PHP 应用服务器)和PHP-FPM等新工具重新定义了我们部署和运行 PHP 应用程序的方式,使其更接近 Go 或 Node.js 等语言的速度和可扩展性。

5.广泛的托管支持和轻松部署

PHP 复兴的最大原因之一是其在托管和部署方面的简单性。世界上几乎每个网络托管商都支持开箱即用的 PHP,而且由于其广泛使用,它是托管成本最低的编程语言之一。

随着 AWS、Google Cloud 和 DigitalOcean 等云原生应用程序和平台的兴起,它们提供易于设置的 LAMP/LNMP 堆栈(Linux、Apache/Nginx、MySQL、PHP),开发人员可以快速且低成本地部署 PHP 应用程序。这使得 PHP 对于希望以最少的麻烦上线网站或应用程序的初创公司、小型企业和自由职业者特别有吸引力。

6. PHP 仍然是 Web 的支柱

别忘了,根据 W3Techs 的数据,79% 的网络仍然运行在 PHP 上。虽然新语言确实取得了一定进展,但 PHP 仍然是世界上许多最大和访问量最大网站的首选。由于安装量如此庞大,企业和开发人员继续投资 PHP,因为它熟悉、可靠,并得到大量开发人员的支持。

此外,流行的内容管理系统(如WordPress、Joomla 和 Drupal) ——支持全球三分之一以上的网站——都是基于 PHP 构建的。这确保了 PHP 在数字领域继续占据重要地位。

7.向后兼容性和开发人员熟悉度

对于许多经验丰富的开发人员来说,PHP 是一个熟悉的编程语言。它已经存在了很长时间,大多数 Web 开发人员至少都对它有一些经验。与更具实验性或快速变化的语言不同,PHP 保持了出色的向后兼容性,这意味着现有的 PHP 应用程序可以更新或扩展,而无需重写大量代码。

对于拥有需要持续支持,和更新的大型遗留系统的企业来说,这一点尤为重要。PHP 的持久性和向后兼容性使其成为维护旧系统同时使用最新语言功能对其进行现代化的安全选择。

重生的语言

2024 年,PHP 还远未过时。它得益于其显著的性能改进、现代功能、像 Laravel 这样的充满活力的框架以及庞大的生态系统,PHP 将再次成为开发人员的首选。近年来,它可能被更流行的语言所掩盖,但它的可靠性、速度和广泛的托管选项使其成为构建从小型网站到大型 Web 应用程序的实用解决方案。

如果你过去曾放弃过 PHP,那么现在可能是时候重新考虑它了。凭借其现代功能和不断壮大的开发者社区,PHP 正在证明其将继续存在 - 也许比以往任何时候都更强大。

作者:场长

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/833948.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux终端美化 oh-my-bash安装

之前一直在用zsh终端,然后安装oh-my-zsh,配置后感觉特别清爽,于是想bash终端下是否存在类似的软件,找了下发现了oh-my-bash。特记录下安装使用过程 oh my bash官网:https://ohmybash.nntoan.com/ oh my bash github:https://github.com/ohmybash/oh-my-bash系统终端SHELL…

MATLAB R2023b for Mac(专业的编程和数学计算软件)v23.2.0.2428915激活版

MATLAB R2023b是MathWorks公司推出的一款专业的数值计算和数据可视化软件,它是MATLAB软件系列的最新版本。该软件在科学、工程和金融等领域的数据分析和模拟方面表现出色,具有强大的功能和工具。MATLAB R2023b引入了更强大的并行计算功能,提高了工作效率,使得用户可以更快地…

好用的视频照片格式转换软件Permute 3你用了吗?

Permute 3是一款功能强大的媒体文件格式转换软件,它以其简洁高效的界面和丰富的功能赢得了用户的青睐。该软件支持视频、音频、图片等多种文件格式的转换,包括但不限于MP4、AVI、MOV、MKV等视频格式,以及MP3、WAV、AAC等音频格式,还有JPEG、PNG等图片格式。用户只需将文件拖…

空壳分身产品之路:直面自身的缺点

这大概是极少见的官方展现自身产品缺陷的文章,旨在帮助用户从多个维度快速判断该产品是否符合个人需求,以避免浪费时间和精力在不必要的下载、安装和使用上。这大概是极少见的官方展现自身产品缺陷的文章,从产品体验,功能设计,技术方案和未来规划的角度,阐述空壳产品的做…

一文解读GaussDB(DWS)监控运维诊断优化能力

帮助开发者分析执行计划,分析SQL语句执行性能消耗,提升租户侧自运维能力。本文分享自华为云社区《GaussDB(DWS) 监控运维诊断优化,历史查询诊断》,作者: yd_219384351。DWS历史查询诊断,基于DWS集群历史topsql,提供异常诊断能力。提供SQL趋势统计分析曲线图,展示SQL历史…

Git进阶实用命令

总结最常用的git命令操作。Mac推荐可视化软件Sourcetree1. 本地仓库git init # 初始化本地git 以下所有操作的前提条件git add -A # 添加当前所有变动文件到本地缓存区 git commit -m <commit-word> # 提交缓存区内容到本地仓库 git commit -am <commit-word> # 上…

go fiber: 抛出自定义异常

一,代码: 1,自定义错误类: package configimport ("fmt" ) //定义错误代码和错误信息 type MyError struct {Code intMsg string } //需要定义通用的Error()方法 func (e MyError) Error() string {return fmt.Sprintf("Code: %d,Msg: %s",e.Code…

移动端按住说话样式

下面是最终效果,手指移出指定区域就改为取消状态,松开手指就取消,手指没有移出指定区域,状态为录音中,松开手指为结束录音状态下面是代码<!DOCTYPE html> <html lang="zh"> <head><meta charset="UTF-8"><meta name="…

联想 进入bios u盘启动

先插入u盘,再选择选项 thinkpad e485 , f12快速选择启动选项 , f1 进入bios其他 联想进入bios设置u盘启动,网上的博客资料中有这样一句话: “7、在Startup栏目中,找到“UEFI/Legacy Boot”选项,设置为“Legacy Only”,并将“CSM Support”设置为“YES”,然后找到“…

Mybatis-plus之新特性,你都用过哪些?

1.lambda方式查询 在使用Mybatis-plus进行查询时,我们正常的操作是创建一个QueryWrapper,然后根据字段去做查询操作(如下图)那么就有一个问题,每个数据库的字段都需要写出来,遇到驼峰字段还需要转换为下划线形式,非常影响开发效率。而官方也考虑到这个问题,后续的版本已…