PHP比你想象的好得多

2021-09-01 20:30:12 字數 2358 閱讀 9898

有很多對於php 的抱怨,甚至這些抱怨也出自很多聰明的人。當 jeff atwood 寫下對於 php 的另一篇抱怨文章之後,我思考了下 php 的好的方面。

這些抱怨最大的問題是他們出自很多仍在使用舊版本 php 的人。他們或許是不願意關心或許是不願意承認 php 不管在語言層面還是在社群層面都在以很快的速度演變。實際上它比任何其他語言或者 web 平台都演變的快。儘管並不總是如此,但是過去的五年 php 經歷了乙個驚人的歷程。

在說最近 php 社群取得的驚人成就之前,我們先來看看一些有趣的數字:php 被 77.9% 的服務端程式語言已知的**使用。wordpress 被全世界 16.6% 的**使用。使用率最高的三個 cms 建站系統是:第一的 wordpress 份額為 54.3%,第二的 joomla 份額為9.2%,第三的 drupal 份額為6.8%。這三個產品都是用 php 寫的。

php 一定做了一些正確的事,不是嗎?

現在,我來告訴你吧,php 的絕技在於:儘管經過了這麼多年的變化,php 對於非技術人員依然是最容易學習的語言,它讓人可以比其他技術更快地建立動態**,也讓人沒有麻煩地託管**。php 可能不是這個世界上設計最好的語言,但是它能讓你完成事情(get things done),這一點是毋庸置疑的。

php 語言

php 5.0(2023年發布)帶來了很實用的物件模型 … 等等,我在說 8 年前發布的東西。快進到現在的 php 5.4,即 php 最近的版本,帶來了對於現代 web 語言你夢寐以求的東西:是的,php 支援了命名空間(namespaces);是的,php 支援閉包(closure);是的,php 支援 traits。

儘管需要花費一些時間,但是 php 5.4 帶來了一些語法糖使得整體體驗比以往更好:是的,php 支援用[ ]定義陣列;是的,php 支援新建立的物件這樣呼叫函式:(new foo ())->bar ();是的,php 支援陣列這樣獲取元素:$foo->bar ()[1]。

php 甚至向它自己曾犯過的錯誤學習:register_globals 和 magic_quotes 被徹底刪除了。

php 有了內建 web 伺服器以方便本地測試,它能以微秒級的速度啟動。

接下來的挑戰:我們怎樣更新在網路上的講解 php 的教程?在 php 程式中最好的支援 websocket 的技術是什麼?

php 生態系統

擁有乙個好的語言是很好的,但是擁有乙個好的生態系統更棒。在過去的幾年 php 生態系統演變了很多。

git對於 git 我不想討論太多,git 被到處使用,php 很快擁抱了 git。幾乎所有 php 類庫、框架和產品都在使用 git,包括 php 本身。

composer

兩年前,我想去掉我在 symfony 1 中 hack 的醜陋 pear **以支援外掛程式。我想替換成能管理專案依賴的東西,而不是乙個像 pear 一樣的整體的安裝,所以我試著尋找能管理軟體依賴的最佳的演算法。我幾乎嘗試了所有可能:從 perl 到 ruby,從 debian 到 redhat。結果沒有讓我滿意的,只有我自己的解決方案恰巧能工作…當然這只是我的經驗只談。之後我偶然發現了 zypp,就是它了。zypp 使用布林可滿足性問題解來管理依賴。多虧了 nils adermann 和 jordi boggiano 的辛苦工作,php 現在有了做好的管理依賴的工具–composer。

是的,php 比其他語言有了更好的依賴管理工具。

想測試 symfony(使用 php5.4)?

$ composer.phar create-project symfony/framework-standard-edition
$ cd framework-standard-edition
想測試 silex?

$ composer.phar create-project fabpot/silex-skeleton
$ cd silex-skeleton
$ php -s localhost:8888 -t web/
還不知道 composer?你應該了解下它了。

瀏覽下主要的 composer 倉庫 packagist,它已經擁有 1900 多個包,且它們在不到三個月的時間裡被安裝了上百萬次。

合作社群合作是本文說的重點,也是我最引以為豪的地方。我們開始看到 php 專案中更好的合作,甚至大專案也是如此,大到你可以忽略其他專案了。

phpbb,drupal,ez publish,symfony,和很多其他專案(比如 phpdocumentor, phpunit, behat, zikula, propel, doctrine, midgard 等等)都在共享**。是的,他們彼此是競爭者,但是他們都理解彼此合作是很重要的。composer 能很好地促進這種合作。

結論讓我再重申一次,php 可能不是最好的程式語言,我也是第乙個說出它的怪處的,但是 php 是迄今為止最好的 web 平台。

PHP比你想象的好得多

有很多對於php的抱怨,甚至這些抱怨也出自很多聰明的人。當jeff atwood寫下對於php的另一篇抱怨文章之後,我思考了下php的好的方面。這些抱怨最大的問題是他們出自很多仍在使用舊版本php的人。他們或許是不願意關心或許是不願意承認php不管在語言層面還是在社群層面都在以很快的速度演變。實際上...

PHP比你想象的好得多

有很多對於php的抱怨,甚至這程式設計客棧些抱怨也出自很多聰明的人。當jeff atwood寫下對於php的另一篇抱怨文章之後,我思考了下php的好的方面。這些抱怨最大的問題是他們出自很多仍在使用舊版本php的人。他們或許是不願意關心或許是不願意承認php不管在語言層面還是在社群層面都在以很快的速度...

PHP比你想象的更好

翻譯自 fabien potencier july 04,2012 對php的吐槽隨處可見,包括一些來自smart guys的吐槽。jeff atwood 的一篇吐槽文,讓我開始思考php好的部分。其實很多吐槽來自過去人們對php的影響,人們不願承認或沒有留意到,php在語言和社群兩個方面,實際上都...