PHP是一個什麼原因出現的呢?它是一個技術人員希望能用一個快速的方面來完成他自己的個人首頁中的一個小應用。而在他一發不可收時出現了php,它使一個人能在多種作業系統下迅速的完成一個輕型的Web應用。所以在短短的幾年裡,php迅速的升級了它的版本,同時在GNU的世界裡找到了一個青梅竹馬的夥伴----Apache。這終於讓php有了基礎,能在一個最佳的環境中運行,同時由於兩個產品都是公開原始碼的產品,所以大家可以使用它們的原始碼將這兩個產品用最完美的方式結合到一起,使用起來就如一個產品一樣。個人認為php是自由軟體在web應用平台上一個決勝的工具,假如沒有php的出現,還會有許多人認為自由軟體就代表了對開發人員的高技術要求、難記的代碼、複雜的工具.....php使一個會使用basic的人員在極短的時間裡快迅學習並完成使用者需要的應用。
怎麼說php呢?假如說ASP是一個COM,哪麼php說的更精確了可以說php是一個純粹的Script翻譯器。這也是php由3升級為4的一個重大原因,在4這個版本裡它重寫了文法分析器,從而加快了php整體的效能。而且從中你也就會明白為什麼php需要支援這種或是那種擴充功能時它一定要與相應系統的lib庫進行再編繹的原因。正因為它是正宗的“翻譯器”,所以它是將script翻譯成為需要執行的函數,再去執行它們,外部擴充不能由一些“動態載入”的方式進行,所以只能靜態編繹進php中(這隻能在windows中除外)。
強勢:
1、一種能快速學習、跨平台、有良好資料庫互動能力的開發語言。ASP比不上它的就是這種跨平台能力了,而正是它的這種能力讓Unix/Linux有了一種與ASP媲美的開發語言。文法簡單、書寫輕易、現在市面上也有了大量的書,同時Internet上也有大量的代碼可以共用,對於一個初學者想學些“高深的Unix”下的開發來說是一個決好的入手點。
2、與Apache及其它擴充庫結合緊密。php與Apache可以以靜態編繹的方式結合起來,而與其它的擴充庫也可以用這樣的方式結合(除外的就是Windows平台了)。這樣的方式的最大的好處就是最大化的利用了cpu時和記憶體,同時極為有效利用了apache的高效能的吞吐能力。同時外部的擴充也是靜態連編,從而達到了最快的運行速度。由於與資料庫的介面也使用了這樣的方式,所以使用的是本地化的調用,這也讓資料庫發揮了最佳效能。
3、良好的安全性。由於php本身的代碼開放所以它的代碼在許多工程師手中進行了檢測,同時它與apache編繹在一起的方式也可以讓它具有靈活的安全設定。所以到現在為止,php具有了公認的安全效能。
弱勢:
1、資料庫支援的極大變化。由於php的所有的擴充介面都是獨立團隊開發完成的,同時在開發時為了形成相應資料的個人化操作,所以php雖然支援許多資料庫,可是針對每種資料庫的開發語言都完全不同。這樣形成針對一種資料庫的工發工作,在資料庫進行升級後需要開發人員進行幾乎全部的代碼更改工作。而為了讓應用支援更多種的資料庫,就需要開發人員將同樣的資料庫操作使用不同的代碼寫出n種程式碼程式庫出來,讓程式員的工作量大大增大。
2、安裝複雜。由於php的每一種擴充模組並不是完全由php本身來完成,需要許多外部的應用庫,如圖形需要gd庫、LDAP需要LDAP庫.……這樣在安裝完成相應的應用後,再聯編進php中來。這也就是我以前在代碼聯盟新聞群組中對網友所說的一定要在FreeBSD/Linux/Unix下運行php的原因。只有在這些環境下才能方便的編繹對應的擴充庫。這些都是一般開發人員在使用php前所先要面對的問題,正是這樣的問題讓許多開發人員轉而使用其它的開發語言,必竟Unix沒有那麼多的使用者。
3、缺少企業級的支援。沒有組件的支援,哪麼所有的擴充就只能依靠php開發組所給出的介面,事實上這樣的介面還不夠多。同時難以將叢集、應用伺服器這樣的特性加入到系統中去。而一個大型的網站或是一個企業級的應用一定需要這樣的支援的。註:在php的4.0版本以後加入了對servlet/javabean的支援,也許這樣的支援會在以後的版本中更加增強,也許這樣的支援會是php以後的企業級支援的起點。
4、缺少正規的商業支援。這也是自由軟體一向的缺點,我想在國內php的開發人員正在快速增加,相信在不久的將來,這樣的支援能多起來。
5、無法實現商品化應用的開發。由於php沒有任何編繹性的開發工作,所有的開發都是基於指令碼技術來完成的。所以所有的原始碼都無法編譯,所以做完成的應用只能是自己或是內部使用,無法實現商品化。
總結:
適用人群:熟悉Unix環境,需要在最少的投入下完成快速的應用開發。
適用平台:FreeBSD/Linux/Unix作業系統、Apache伺服器適用應用:Internet高訪問量、快速資料庫開發的應用。
學習方式:Internet上國內豐富的資源Internet上豐富的原始碼資源,完全可以參考這樣的常式來完成自己的應用。市場上最近出版的好幾本php手冊。
推薦開發工具:Home Site/PHPEd
推薦開發環境:FreeBSD 4.1/RedHat 6.1作業系統/Apache 1.3.12/MySQL 3.22/P 200/64M RAM/9G HD
推薦應用環境(最少):FreeBSD 3.5/MySQL 3.22/Apache 1.3.12/P 200/128M RAM/9G HD
推薦應用環境(最佳):FreeBSD 3.5/Sybase 11/Apache 1.3.12/P III 500/512M RAM/18G HD