在多數WEB開發者眼中,ASP和JSP都被認為是領跑者,而PHP卻被認為是個弱小的“掙扎者”,或者說它是一門被貶低為業余者才使用的語言,不值得參與企業WEB開發的競爭。在我看來,PHP沒有被當作競爭者的理由是評論者缺乏對它的了解,而且也不了解用於WEB開發的其他操作系統。和一些觀點相反,Windows不再占有WEB虛擬主機服務市場的最大份額,我猜想它在WEB開發這一領域裡也在被摧城拔寨。
在企業開發裡為什麼沒有PHP?
很顯然,PHP被認為落後ASP和JSP太多,以至於它是沒有什麼用的,但是這恰恰與事實不符。PHP本身就是一門強大的語言。它事實上在每個發行版的LINUX上都有,在Mac OS X上也有。獲取開發和使用PHP代碼的構件(building-block)工具和軟件都是免費的。用於開發PHP應用程序的商業集成開發環境(commercial integrated development environments,IDES)也可以找到——這樣的工具有Komodo(它運行在LINUX和Windows上)和Zend Studio(這個應用程序能夠運行在任何帶有JAVA運行環境的操作系統上)。你幾乎可以在每個WEB上運行由PHP建立的網站,而不要考慮服務器所運行的是什麼操作系統,這一事實讓PHP更加具有吸引力。
PHP能夠提供什麼?
先把PHP周圍有什麼忘掉一會兒,而考慮一下PHP自身能夠提供什麼。它是一門強健的服務器端語言,能夠提供相當多的功能,而且能夠迅速地為頁面提供服務。
容易使用
使用C或者Perl或者具有類似風格和句法的另一種語言的任何用戶都能夠很快上手PHP。盡管它是設計用在WEB上的,但是它也能夠作為命令行語言使用。你正在編寫的WEB應用程序需要每個小時或者每天執行一次某些代碼嗎?使用cron或者類似的計劃安排管理器,你可以計劃安排PHP代碼在你希望的時候執行,使用普通的命令解釋腳本或者批處理文件就能夠執行這樣的代碼。不需要自動調用浏覽器就能夠查看專門的網頁,從而執行你的事件,也沒有必要依賴來訪者的點擊來告訴你的系統:特定的代碼需要在特定的時候被執行。PHP在這一領域可擴展性的事實是絕對具有吸引力的。
PHP的好處
我不是JSP或者ASP的老手,在此我也不想貶低這些語言。相反,我會把注意力放在PHP的好處上。
本地化
PHP讓你能夠為網站的訪問者提供本地化的服務。當用戶點擊進入網站的時候,網站會根據他們浏覽器的設置自動地以其母語向其提供頁面。要實現這一點不需要使用用於語言翻譯的煩雜文件,而是使用和本地化的C程序所具有的相同能力,通過一個叫做gettext的系統實現的。如果被請求的語言文件存在,那麼用戶所看到的文本就是其母語;如果語言文件不存在,那麼文本就是缺省的英語或者其他任何你所指定的語言。許多本地化的UNIX應用程序都將gettext作為標准,它讓第三方的翻譯變得輕而易舉。
輕易地使用命令行
PHP支持在需要的地方設置和執行命令行程序。使用標准的UNIX diff工具,它能夠生成錯誤最後一次修改同要使用電子郵件發送到錯誤的所有者的當前注釋之間的不同。PHP代碼對在系統上所編寫的兩個文件執行diff,將其輸出作為輸入,再生成一個要發送的電子郵件。這封電子郵件是通過PHP自己來發送的。
其他好處
上面的只是我在自己程序裡所用到的強大功能中的兩個,而還其他的功能。例如,你可以:
即時創建簡單的Flash動畫。即時創建PDF文檔。使用高級數學功能,以及面向對象的編程技術。讀取和寫入到本地和IMAP郵箱。
在PHP裡就可以使用任何標准的Internet協議。想要編寫基於PHP的FTP、WEB或者新聞客戶端?沒有問題!只使用PHP你就完全能夠編寫出使用標准TCP/IP套接字的客戶端和服務器,並以此創建自己的協議。
實現對加密的支持,以及對各種數據庫服務器的支持。
缺乏遠見的評論
我覺得,那些尋找頂級WEB開發語言而排除掉PHP的人是極其短見的。我使用PHP編寫代碼已經有很多年了,無論是像錯誤追蹤系統這樣的高級功能,還是簡單地重復使用頁眉和頁腳這樣的普通功能,我都使用PHP編寫過。我用PHP編寫過半靜態的頁面,也編寫過全功能的多媒體演示。我不是唯一一個使用PHP的人。如果PHP不值得引起注意,如果它只是小兒科或者愛好者的語言,那它為什麼會是在WEB開發上成長最快的語言呢?如果它沒有ASP或者JSP那麼強大,那麼它為什麼會被用在流量巨大WEB網站上?例如Yahoo,據說它就是由PHP建成的。