首頁  >  文章  >  對PHP的誤解有哪些?

對PHP的誤解有哪些?

藏色散人
藏色散人轉載
2021-08-20 14:34:293489瀏覽

PHP 現在名聲很糟糕,因為它曾經是「可怕」的。本文試著回答一些常見的關於 PHP 的斷言,目的是向非技術人員解釋,PHP 並不像許多人所說的那麼糟糕。

→本文翻譯自:https://www.getparthenon.com/blog/php-isnt-that-like-really-bad/

1、它是不是鼓勵糟糕的實踐?

不再是了。過去,許多開發者被書本教授非常糟糕的實踐,因此 PHP 程式碼的品質非常差。 PHP 曾經還允許你做一些非常奇怪的事情,使得它非常容易構建,但維護起來卻是一場噩夢。

這些不再是常見的問題。隨著高品質學習材料的引入,這些材料易學且易於獲取,新的開發人員可以以正確的方式學習 PHP。這樣就可以避免初級開發者因為不知道建構事物的正確方法而寫一些維護起來非常痛苦的程式碼。

隨著框架的引入,導致許多糟糕體驗的大部分通用程式碼現在都自動完成了;因此,開發人員只需使用框架,框架就可以正確地對其進行編碼。

而且,這些年來,一些糟糕的實踐是由缺失的特性造成的,導致了一些不應該被允許的事情被允許。現在大多數情況下,甚至不可能實現以前編寫的一些東西來導致這種聲譽。

小結

  • 它不再鼓勵糟糕的實踐...

  • 透過使用框架避免了糟糕實踐。

  • 語言特性現在有很多討論。糟糕的特性不再受到支援。

  • PHP 增加了其他語言中存在的大部分(即使不是全部)的特性。

2、它的安全性是不是很差?

過去,PHP 應用程式的安全性通常很差,因為語言允許這樣做。這些東西不再被使用,因為 PHP 應用程式的開發現在已經完全不同。

透過使用自動載入程式來包含檔案而不是動態包含文件,已經移除了遠端和本機檔案包含(其中 PHP 從其它位址而不是原本打算的位址讀取檔案)。

透過廣泛使用範本系統(可以自動處理顯示動態內容的轉義和安全性問題),已經避免了直接在PHP 中直接使用HTML 所導致的跨站腳本攻擊(其中一個使用者將JavaScript腳本新增到要顯示給另一個使用者的地方)。

透過在 SQL 中使用 prepared 語句,避免了 SQL 注入攻擊(這是由於需要建立 SQL 查詢並將查詢和資料一起發送導致的,其中使用者可以向查詢中增加額外的 SQL 命令)。另外,ORM 的使用也很普遍,它確保使用者資料和查詢是分開發送的,而 SQL 不能將其視為單獨的命令。

透過廣泛使用且採用 nonce 系統的 form 函式庫,避免了跨站請求偽造(其中,使用者能夠被誘騙在你的網站上執行某些操作)。

小結

  • 不再是了。

  • 透過使用自動載入程式(所有主流框架的標配),避免了遠端和本機檔案包含。

  • 透過使用模板語言作為標準或一種前端框架(例如 React),避免了跨站腳本(XSS)攻擊。

  • 透過使用 ORMs 和廣泛使用 prepared 語句,避免了 SQL 注入。

  • 透過使用 nonce token(被所有主流框架自動支援),避免了跨站請求偽造(CRSF)攻擊。

3、它是不是真的很慢?

這取決於你把它與什麼比較。如果你把 PHP 與 Java、C 或 Go 比較,那它就是比較慢。但如果你把 PHP 與 Python、Ruby 等等比較,那麼它並不慢。在同類型的語言中,PHP 是最快的之一,並且不斷在提高效能。

大多數情況下,你的應用程式慢是因為伺服器過載或資料庫查詢慢。這些問題在任何語言中都會存在。

小結

  • PHP 與編譯型語言比較是比較慢。

  • PHP 與其它腳本型語言相比是比較快的。

  • 網站慢通常不是由於使用的語言不夠快,而是因為伺服器或資料庫導致的效能問題。

4、它的伸縮性是不是真的很差?

#

實際上,任何語言都可以伸縮。編譯型語言(例如 Go、C 或 Rust)比腳本型語言(例如 PHP)的擴充成本更低。然而,它們並不是為了同樣的任務而設計的。事實上,它們都是一樣的;這簡單地歸結於你使用的伺服器數量。如果你使用足夠多的伺服器,你可以擴展任何應用程式。 PHP 比其它腳本型語言的擴展成本更低,因為它需要更少的資源來開始運行,並且可以在具有更多 CPU 的較小記憶體的伺服器上運行。

另外,對於伸縮性,重要的是資料庫。如果你能夠擴展你的資料庫,你就可以擴展你的應用程式。資料庫比應用程式伺服器更難擴展。增加另一個讀取資料庫的客戶端很容易;但是,讓資料庫快速運行要困難得多。

小結

  • 任何語言都可以伸縮;這取決於你使用多少伺服器。

  • 擴充功能的真正問題是資料庫而不是所使用的應用程式語言。

  • 如果你能夠擴展你的數據,你就能擴展你的應用程式。

5、我應該一直使用它嗎?

不。每種程式語言都有其擅長的領域。 PHP 非常適合 Web 應用程式。你應該用它來建立網站和 API。

如果你正在建立一個系統應用程序,其中每毫秒都很重要,使用 Rust 或 C。

如果你正在建立一個人工智慧應用程序,Python 是一個好選項。

如果你正在建立一個 SaaS 應用程序,PHP 是一個好選項。

如果你正在建立一個安卓應用程序,Kotlin 是一個好選項。

如果你正在建立一個運行在多個平台上的應用程序,Java 是一個好選項。

小結

  • 不,每種語言都有其最佳用例。

  • PHP 的最佳用例是 Web 應用程式。

  • Go、Rust、C 適合系統應用程式。

  • Python 適合人工智慧。

  • Kotlin 適合安卓應用程式。

  • Java 適合與平台無關的應用程式。

6、結論

#很多關於 PHP 的說法都過時 10 年了。在我們看來,如果有人給你關於某個技術主題的過期 10 年的信息,那麼這個人可能不是你想要信任的技術專家。

PHP 是創建 Web 應用程式的好程式語言,我們認為它是 Web 應用程式開發的最佳語言。

小結

  • 這些抱怨很多都過期10 年了。

  • 我們認為 PHP 是建立 Web 應用程式的最佳語言。

#
陳述:
本文轉載於:getparthenon。如有侵權,請聯絡admin@php.cn刪除