在多數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建成的。
開發人員習慣用熟悉的產品
我敢肯定,ASP 和JSP有它們各自的強項,但是我相信人們是用它們不是因為它們能夠提供比PHP更加強大的功能,而是因為人們已經瞭解了它們,並希望以自己習慣的方法編寫代碼。排除PHP只能表示對這一語言的無知。