程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP比你想象的好得多

PHP比你想象的好得多

編輯:關於PHP編程

 

PHP比你想象的好得多

有很多對於 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(2004年發布)帶來了很實用的對象模型 … 等等,我在說 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 比其他語言有了更好的依賴管理工具。

  由於有了 Git,Composer,和 PHP 內置 web 服務器,我們更容易下載/測試/安裝一個 PHP 項目。

  想測試 Symfony(使用 PHP5.4)?

$ composer.phar create-project symfony/framework-standard-edition
$ cd framework-standard-edition
$ ./app/console server:run

  想測試 Silex?

$ composer.phar create-project fabpot/silex-skeleton
$ cd silex-skeleton
$ php -S localhost:8888 -t web/

  還不知道 Composer?你應該了解下它了。

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

  接下來的挑戰:在下一個 PHP 版本裡內置 Composer?

  合作

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

  phpBB,Drupal,ez Publish,Symfony,和很多其他項目(比如 phpDocumentor, PHPUnit, Behat, Zikula, Propel, Doctrine, Midgard 等等)都在共享代碼。是的,他們彼此是競爭者,但是他們都理解彼此合作是很重要的。Composer 能很好地促進這種合作。

  接下來的挑戰:說服更多的項目加入這個趨勢中來。

  結論

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


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved