一.PHP與服務器
PHP運行模式,這個看字面就知道啥意思了,一共有多少種,說不准,因為分類標准不一,在此,我說說一些大部分人同意的分類吧。有CLI模式,CGI模式,FAST-CGI模式,web模塊模式,ISAPI模式。想知道細節可以自行查找資料。以下只是大概的對比。
備注:在PHP5.3以後,PHP不再有ISAPI模式,安裝後也不再有php5isapi.dll這個文件。
以web模塊模式為例對比其他模塊。
web模塊模式是將php作為一個模塊,加載與web服務器上面,服務器負責進行多進 程,php解釋器負責多線程,相較於CLI/CGI模式(FAST-CGI模式是CGI模式的升級版)的單進程,無疑是更加合理的,面對多個使用者,服務 器很好的承擔起了很大一部分的網絡訪問壓力,而php解釋器只需要專心於應用單用戶的請求即可,這是只有單線程的其他模式不可比擬的。且,作為一個模塊, 耦合性不高,也可以說成是高內聚底耦合,有了更大的可能性。
如:PHP不止可以運行在Apache服務器上,也可運行在IIS,Nginx,Lighttpd,Tomcat等等主流與非主流服務器上。
二.PHP擴展與Zend API
許多人使用php主要是他的易用與易學,然而大多數人並沒有意識到php這門語言為什 麼易用,其實他的容易主要源於他的多擴展。我們平常使用的array函數,mysql函數,等等等等,其實都是一個個的擴展,正是擁有了這麼多的擴展供我 們使用,我們才能夠很快的學會如何使用他,說道這個,就不得不提Zend Engine了,大多數擴展都是基於這個引擎的API即Zend API而編寫的,這個引擎的其中一個作用是PHP的OO功能,他還有許多功能,也正是因為如此,使得這其中的關系過於緊密,耦合性高,對於可擴展性不是那 麼友好。
*