」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼 PHP 在經典語言的意外捲土重來中越來越受歡迎

為什麼 PHP 在經典語言的意外捲土重來中越來越受歡迎

發佈於2024-11-01
瀏覽:728

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]刪除
最新教學 更多>
  • 如何解決 Alpine 容器 Go 中 Pingdom API 的 x509 憑證問題?
    如何解決 Alpine 容器 Go 中 Pingdom API 的 x509 憑證問題?
    x509 Go 中Pingdom API 的憑證問題在利用pingdom-go 套件與Pingdom API 互動時,容器化應用程式遇到以下問題錯誤:「取得https://api.pingdom.com/api/2.1/checks/0:x509:由未知頒發機構簽署的憑證。 要解決此問題,我們可以探...
    程式設計 發佈於2024-11-07
  • 前端 UI 元件
    前端 UI 元件
    iHateReading 自訂儲存庫 在過去的一個月裡,我製作了許多 UI 元件,這些元件是真實世界的 Web 元件,例如按鈕、輸入、表單、橫幅、圖庫 為多種目的而製造的組件 學習前端並在我所做的事情上變得更好 提高前端開發中編寫更好程式碼的能力(稍後我會解釋這意味著什麼) 我目前...
    程式設計 發佈於2024-11-07
  • 我可以僅使用 .frm 檔案還原 MySQL 資料庫嗎?
    我可以僅使用 .frm 檔案還原 MySQL 資料庫嗎?
    使用 .frm 檔案還原 MySQL 資料庫執行常規資料庫備份時,擷取整個資料庫結構和資料至關重要。數據。但是,在某些情況下,使用者可能只能存取 .frm 文件,該文件代表表結構,而不是實際資料。在這種情況下,僅使用 .frm 檔案還原資料庫及其資料可能具有挑戰性。 幸運的是,在某些情況下可以從 ....
    程式設計 發佈於2024-11-07
  • 在 PHP 中啟用或停用「allow_url_fopen」:評估風險和替代方案
    在 PHP 中啟用或停用「allow_url_fopen」:評估風險和替代方案
    授予或不授予:探索PHP 中'allow_url_fopen' 的用法開發者經常請求激活'allow_url_fopen' 功能在生產伺服器上。鑑於目前的網頁開發狀況,確定此權限是否仍然是必要的或是否有更好的替代方案至關重要。 評估情況在做出決定之前,請考慮以下事項:...
    程式設計 發佈於2024-11-07
  • 如何覆蓋 PHP 的 `mail()` 函數中的信封回傳地址?
    如何覆蓋 PHP 的 `mail()` 函數中的信封回傳地址?
    如何在PHP Mail 中覆蓋信封回傳地址為了解決使用PHP 的mail() 函數設定信封回傳地址的問題,這個答案提供了一個簡單的解決方案。 mail() 函數接受可選的第四個和第五個參數。雖然第四個參數用於設定標頭,但第五個參數可用於將選項直接傳遞給底層的 sendmail 命令。透過在第五個參數...
    程式設計 發佈於2024-11-07
  • 科技觀察 #1
    科技觀察 #1
    大家好,這是我上週的技術手錶,其中包含很多 #react、一點 #html、一些 #css 和 #npm。 ? https://www.totaltypescript.com/how-to-create-an-npm-package 如何建立 NPM 套件 建立、測試和發布 NPM 套件(從初始化...
    程式設計 發佈於2024-11-07
  • mysqli_fetch_array() 何時顯示錯誤「期望參數 1 為 mysqli_result,給定布林值」?
    mysqli_fetch_array() 何時顯示錯誤「期望參數 1 為 mysqli_result,給定布林值」?
    mysqli_fetch_array() 期望MySQLi 結果,而不是布林值在給定的PHP 程式碼中,錯誤「mysqli_fetch_array() 期望參數1 為mysqli_result, boolean Give" 表示使用mysqli_query() 的查詢執行失敗,傳回fals...
    程式設計 發佈於2024-11-07
  • 子集和問題的 PHP 程式
    子集和問題的 PHP 程式
    子集和問題是電腦科學和動態規劃中的經典問題。給定一組正整數和一個目標和,任務是確定是否存在給定集合的子集,其元素總和等於目標和。 子集與問題的PHP程序 使用遞歸解決方案 例子 <?php // A recursive solution for the subset sum problem /...
    程式設計 發佈於2024-11-07
  • JavaScript 陣列方法:綜合指南
    JavaScript 陣列方法:綜合指南
    数组是 JavaScript 中最基本的数据结构之一。使用数组,您可以在单个变量中存储多个值。 JavaScript 提供了许多内置方法来操作数组,使它们具有令人难以置信的通用性。在这篇文章中,我们将探讨所有内置数组方法以及如何在 JavaScript 项目中有效地使用它们。 核心方...
    程式設計 發佈於2024-11-07
  • 進階 T:依賴參數、推斷聯合以及 Twitter 上的健康互動。
    進階 T:依賴參數、推斷聯合以及 Twitter 上的健康互動。
    每次我用 TypeScript 写成 Foo 时,我都会感受到失败的沉重。 在一种情况下,这种感觉特别强烈:当函数采用的参数取决于哪个 "mode" 处于活动状态时。 通过一些示例代码更清晰: type Provider = "PROVIDER A" | "PR...
    程式設計 發佈於2024-11-07
  • 如何建立人力資源管理解決方案
    如何建立人力資源管理解決方案
    1. Understanding the Basics of Frappe and ERPNext Task 1: Install Frappe and ERPNext Goal: Get a local or cloud-based instance of ERP...
    程式設計 發佈於2024-11-07
  • 從週五黑客到發布:對創建和發布開源專案的思考
    從週五黑客到發布:對創建和發布開源專案的思考
    从周五补丁破解到发布:对创建和发布开源项目的思考 这是针对初学者和中级开发人员的系列的一部分,通过将他们的想法作为开源项目发布或引起兴趣。 这些想法是有偏见的和个人的。计划发布更多文章。通过分享一些思考,我希望能启发你做自己的项目 思考(此) 作为 Java 开发人员学习 Go l...
    程式設計 發佈於2024-11-07
  • 可以使用 constexpr 在編譯時確定字串長度嗎?
    可以使用 constexpr 在編譯時確定字串長度嗎?
    常數表達式最佳化:可以在編譯時確定字串長度嗎? 在最佳化程式碼的過程中,開發人員嘗試計算使用遞​​歸函數在編譯時計算字串文字的長度。此函數逐字元計算字串並傳回長度。 初步觀察:該函數似乎按預期工作,在運行時返回正確的長度並產生表明計算發生在編譯時的彙編程式碼。這就提出了一個問題:是否保證length...
    程式設計 發佈於2024-11-07
  • 在 Raspberry Pi 上執行 Discord 機器人
    在 Raspberry Pi 上執行 Discord 機器人
    Unsplash 上 Daniel Tafjord 的封面照片 我最近完成了一个软件工程训练营,开始研究 LeetCode 的简单问题,并觉得如果我每天都有解决问题的提醒,这将有助于让我负起责任。我决定使用按 24 小时计划运行的不和谐机器人(当然是在我值得信赖的树莓派上)来实现此操作,该机器人将执...
    程式設計 發佈於2024-11-07
  • 解鎖 JavaScript 的隱藏寶石:未充分利用的功能可提高程式碼品質和效能
    解鎖 JavaScript 的隱藏寶石:未充分利用的功能可提高程式碼品質和效能
    In the ever-evolving landscape of web development, JavaScript remains a cornerstone technology powering countless large-scale web applications. While...
    程式設計 發佈於2024-11-07

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3