”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 为什么 PHP 在经典语言的意外卷土重来中越来越受欢迎

为什么 PHP 在经典语言的意外卷土重来中越来越受欢迎

发布于2024-11-01
浏览:772

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 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 生态系统仍然活跃并不断发展。 Composer 是 PHP 的包管理器,已成为现代 PHP 开发的核​​心部分,提供对数千个库和工具的访问。随着高质量开源包的数量不断增加,PHP 开发人员在构建应用程序时拥有了一个充满活力的生态系统可供借鉴。

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

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

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

随着云原生应用程序和平台(例如 AWS、Google Cloud 和 DigitalOcean)的兴起,提供易于设置的 LAMP 堆栈(Linux、Apache、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 正在证明它会继续存在 — 也许比以往任何时候都更强大。


如果您喜欢这篇文章并想表达您的支持,您可以通过给我买杯咖啡来轻松实现。非常感谢您的贡献!

Why PHP is Gaining Popularity in The Unexpected Comeback of a Classic Language

版本声明 本文转载于:https://dev.to/jenueldev/why-php-is-gaining-popularity-in-2024-the-unexpected-comeback-of-a-classic-language-1pa?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 在细胞编辑后,如何维护自定义的JTable细胞渲染?
    在细胞编辑后,如何维护自定义的JTable细胞渲染?
    在JTable中维护jtable单元格渲染后,在JTable中,在JTable中实现自定义单元格渲染和编辑功能可以增强用户体验。但是,至关重要的是要确保即使在编辑操作后也保留所需的格式。在设置用于格式化“价格”列的“价格”列,用户遇到的数字格式丢失的“价格”列的“价格”之后,问题在设置自定义单元格...
    编程 发布于2025-04-02
  • 如何将来自三个MySQL表的数据组合到新表中?
    如何将来自三个MySQL表的数据组合到新表中?
    mysql:从三个表和列的新表创建新表 答案:为了实现这一目标,您可以利用一个3-way Join。 选择p。*,d.content作为年龄 来自人为p的人 加入d.person_id = p.id上的d的详细信息 加入T.Id = d.detail_id的分类法 其中t.taxonomy =...
    编程 发布于2025-04-02
  • 如何在Java中正确显示“ DD/MM/YYYY HH:MM:SS.SS”格式的当前日期和时间?
    如何在Java中正确显示“ DD/MM/YYYY HH:MM:SS.SS”格式的当前日期和时间?
    如何在“ dd/mm/yyyy hh:mm:mm:ss.ss”格式“ gormat 解决方案:的,请访问量很大,并应为procectiquiestate的,并在整个代码上正确格式不多: java.text.simpledateformat; 导入java.util.calendar; 导入java...
    编程 发布于2025-04-02
  • 如何同步迭代并从PHP中的两个等级阵列打印值?
    如何同步迭代并从PHP中的两个等级阵列打印值?
    同步的迭代和打印值来自相同大小的两个数组使用两个数组相等大小的selectbox时,一个包含country代码的数组,另一个包含乡村代码,另一个包含其相应名称的数组,可能会因不当提供了exply for for for the uncore for the forsion for for ytry...
    编程 发布于2025-04-02
  • 如何将MySQL数据库添加到Visual Studio 2012中的数据源对话框中?
    如何将MySQL数据库添加到Visual Studio 2012中的数据源对话框中?
    在Visual Studio 2012 尽管已安装了MySQL Connector v.6.5.4,但无法将MySQL数据库添加到实体框架的“ DataSource对话框”中。为了解决这一问题,至关重要的是要了解MySQL连接器v.6.5.5及以后的6.6.x版本将提供MySQL的官方Visual...
    编程 发布于2025-04-02
  • 对象拟合:IE和Edge中的封面失败,如何修复?
    对象拟合:IE和Edge中的封面失败,如何修复?
    To resolve this issue, we employ a clever CSS solution that solves the problem:position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%)...
    编程 发布于2025-04-02
  • 如何在Java字符串中有效替换多个子字符串?
    如何在Java字符串中有效替换多个子字符串?
    在java 中有效地替换多个substring,需要在需要替换一个字符串中的多个substring的情况下,很容易求助于重复应用字符串的刺激力量。 However, this can be inefficient for large strings or when working with nu...
    编程 发布于2025-04-02
  • 如何从PHP中的数组中提取随机元素?
    如何从PHP中的数组中提取随机元素?
    从阵列中的随机选择,可以轻松从数组中获取随机项目。考虑以下数组:; 从此数组中,使用array_rand( array_rand()函数从数组返回一个随机键。通过将$项目数组索引使用此键,我们可以从数组中访问一个随机元素。这种方法为选择随机项目提供了一种直接且可靠的方法。
    编程 发布于2025-04-02
  • 如何干净地删除匿名JavaScript事件处理程序?
    如何干净地删除匿名JavaScript事件处理程序?
    删除匿名事件侦听器将匿名事件侦听器添加到元素中会提供灵活性和简单性,但是当要删除它们时,可以构成挑战,而无需替换元素本身就可以替换一个问题。 element? element.addeventlistener(event,function(){/在这里工作/},false); 要解决此问题,请考虑...
    编程 发布于2025-04-02
  • 如何在Java的全屏独家模式下处理用户输入?
    如何在Java的全屏独家模式下处理用户输入?
    Handling User Input in Full Screen Exclusive Mode in JavaIntroductionWhen running a Java application in full screen exclusive mode, the usual event ha...
    编程 发布于2025-04-02
  • 如何将多种用户类型(学生,老师和管理员)重定向到Firebase应用中的各自活动?
    如何将多种用户类型(学生,老师和管理员)重定向到Firebase应用中的各自活动?
    Red: How to Redirect Multiple User Types to Respective ActivitiesUnderstanding the ProblemIn a Firebase-based voting app with three distinct user type...
    编程 发布于2025-04-02
  • 如何在鼠标单击时编程选择DIV中的所有文本?
    如何在鼠标单击时编程选择DIV中的所有文本?
    在鼠标上选择div文本单击带有文本内容,用户如何使用单个鼠标单击单击div中的整个文本?这允许用户轻松拖放所选的文本或直接复制它。 在单个鼠标上单击的div元素中选择文本,您可以使用以下Javascript函数: function selecttext(canduterid){ if(do...
    编程 发布于2025-04-02
  • 如何使用Python理解有效地创建字典?
    如何使用Python理解有效地创建字典?
    在python中,词典综合提供了一种生成新词典的简洁方法。尽管它们与列表综合相似,但存在一些显着差异。与问题所暗示的不同,您无法为钥匙创建字典理解。您必须明确指定键和值。 For example:d = {n: n**2 for n in range(5)}This creates a dicti...
    编程 发布于2025-04-02
  • 如何使用PHP将斑点(图像)正确插入MySQL?
    如何使用PHP将斑点(图像)正确插入MySQL?
    essue VALUES('$this->image_id','file_get_contents($tmp_image)')";This code builds a string in PHP, but the function call ...
    编程 发布于2025-04-02
  • 如何正确使用与PDO参数的查询一样?
    如何正确使用与PDO参数的查询一样?
    在pdo 中使用类似QUERIES在PDO中的Queries时,您可能会遇到类似疑问中描述的问题:此查询也可能不会返回结果,即使$ var1和$ var2包含有效的搜索词。错误在于不正确包含%符号。通过将变量包含在$ params数组中的%符号中,您确保将%字符正确替换到查询中。没有此修改,PDO...
    编程 发布于2025-04-02

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3