對于PHP的前途(二)
發(fā)表時(shí)間:2023-08-20 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]3.2在Windows 95/98/NT/2000上快速安裝Apache Web服務(wù)器(10秒鐘) 在Windows上運(yùn)行PHP,你需要一個(gè)Web服務(wù)器,你可以使用微軟的IIS,也可以使用免費(fèi)的Ap...
3.2在Windows 95/98/NT/2000上快速安裝Apache Web服務(wù)器(10秒鐘)
在Windows上運(yùn)行PHP,你需要一個(gè)Web服務(wù)器,你可以使用微軟的IIS,也可以使用免費(fèi)的Apache 。因?yàn)榭梢酝ㄟ^Apache的安裝文件setup.exe進(jìn)行安裝,可以為你節(jié)省許多時(shí)間。
PHPTtriad是一個(gè)包括Apache、PHP、MySQL的軟件包,可從http://www.phpgeek.com/phptriad.php 或其鏡像站點(diǎn)http://sourceforge.net/projects/phptriad下載。我強(qiáng)烈推薦使用PHPTtriad,它在Windows用戶中極受歡迎(已被下載了幾百萬次)。
Apache 二進(jìn)制程序: http://httpd.apache.org/dist/httpd/binaries/win32
3.3 微軟的SQL服務(wù)器
SQL服務(wù)器可以安裝在不需要運(yùn)行Windows的機(jī)器上,而你也需要一個(gè)SQL服務(wù)器來作Web開發(fā)。我推薦你在很老的PC上(如Pentium或486)安裝Redhat Linux和PostgreSQL RPMs。你數(shù)據(jù)庫并不需要任何Windows圖形界面,可以在控制臺直接啟動(dòng)PostgreSQL。PostgreSQL的速度大概是Oracle和MS SQL server的3倍。
PHP的PostgreSQL支持庫是由Adam Sussman編寫的,他的郵件地址是:asussman@vidya.com
支持Windows NT/2000的PostgreSQL可從http://www.askesis.nl下載?蓮膆ttp://www.geocities.com/alavoor/HOWTO/pgsql/PostgreSQL-HOWTO.html獲取PostgreSQL的使用指南 。
3.4 PHP在UNIX和其它操作系統(tǒng)上的安裝
參見PHP主站點(diǎn)www.php.net上的安裝指南和說明,或所下載的軟件包中的INSTALL文件。
4.快速進(jìn)階
用PHP的面向?qū)ο髾C(jī)制實(shí)現(xiàn)一個(gè)項(xiàng)目的步驟如下:
·首先,你需要連接一個(gè)數(shù)據(jù)庫SQL服務(wù)器——有下面兩個(gè)選擇:
ADODB (Active Data Objects Data Base),即動(dòng)態(tài)數(shù)據(jù)對象數(shù)據(jù)庫(http://php.weblogs.com/adodb)
Metabase(Database independent access and management),即數(shù)據(jù)庫獨(dú)立訪問和管理(
http://phpclasses.upperdesign.com/browse.htm/package/20)
·第二,你需要一些通用的PHP類來創(chuàng)建表單、表格和其它HTML對象。這些都可以從PHP classes網(wǎng)站上獲取(http://phpclasses.upperdesign.com)。可以參考一下該網(wǎng)站的下載排行榜。也可以從網(wǎng)站http://www.milkywaygalaxy.freeservers.com/上獲取表單類、模板類等。
·第三,通過對這些通用類的繼承,來設(shè)計(jì)和創(chuàng)建自己的PHP類。
·第四,使用模板類來分離顯示樣式和業(yè)務(wù)邏輯,可參見http://www.phpclasses.com
·第五,使用IDE工具進(jìn)行開發(fā)(參見PHP IDE一節(jié))。
·最后,最好把你代碼封裝成類,這樣可以實(shí)現(xiàn)代碼的易維護(hù)性和可重用性。
5.PHP的主要特性
·支持標(biāo)準(zhǔn)CGI,F(xiàn)astCGI和Apache模塊——作為一個(gè)標(biāo)準(zhǔn)的CGI程序,PHP可以安裝在運(yùn)行任何Web服務(wù)器的任何UNIX機(jī)器上。 PHP支持新的FastCGI標(biāo)準(zhǔn),通過這一機(jī)制,PHP獲得了速度上的提高。 當(dāng)配置成Apache模塊時(shí),PHP便成了功能極為強(qiáng)大的,運(yùn)行速度如閃電般快的新的選擇。
·訪問日志——通過PHP的日志訪問功能,用戶可以維護(hù)他們的點(diǎn)擊次數(shù)和日志。 該功能提供了實(shí)時(shí)的訪問監(jiān)測,而不以任何方式使用系統(tǒng)的中心訪問日志文件。日志瀏覽腳本為個(gè)人用戶擁有的一組頁面提供快速的訪問摘要。除此之外,該程序包還可以通過配置為每一個(gè)頁面生成一個(gè)頁腳(footer)來顯示訪問信息?蓞⒖嘉恼潞竺娴睦印
·訪問控制——個(gè)內(nèi)建的基于Web的配置“篩”,可實(shí)現(xiàn)對訪問控制的配置。這樣,才有可能為所有或部分Web頁面創(chuàng)建一套規(guī)則,使得擁有這些頁面的特定的人可以對他的網(wǎng)頁設(shè)置各種限制,如,什么人可以訪問這些頁面以及這些頁面以怎樣的一種方式被訪問。對頁面的設(shè)置有許多方式,如密碼保護(hù)、完全限制、登錄失效、或者更多的以客戶的域、瀏覽器、e-mail地址甚至涉及的其它文檔為設(shè)置依據(jù)。
·支持PostgresSQL——PostgresSQL是一個(gè)先進(jìn)但是免費(fèi)的RDBMS(關(guān)系數(shù)據(jù)庫管理系統(tǒng))。PHP支持在.html文件中直接嵌入PostgresSQL的“SQL 查詢語句”。
·支持RFC-1867文件上傳——文件上傳是Netscape2.0新增的一項(xiàng)功能。用戶可以將文件上傳到Web服務(wù)器。
PHP提供了實(shí)際的MIME解碼功能,使得文件上傳成為可能。PHP還提供額外的框架,可對收到的上傳文件進(jìn)行一些有用的處理。
·基于HTTP的身份驗(yàn)證控制——PHP可以用來為Apache服務(wù)器創(chuàng)建自定義的基于HTTP的身份驗(yàn)證機(jī)制。
·變量、數(shù)組,聯(lián)合數(shù)組(associative arrays)——PHP支持typed(這個(gè)單詞不知道怎么譯,望高手指點(diǎn))變量,數(shù)組,甚至Perl風(fēng)格的聯(lián)合數(shù)組。而這些都可以通過GET或POST方法的表單從一個(gè)頁面?zhèn)鬟f到另一個(gè)頁面。
·條件語句、While循環(huán)——PHP是一種類似C語言的功能完整的腳本語言。你可以使用if/then/elseif/else/endif條件語句,以及While循環(huán)和Switch/case語句來安排HTML頁面顯示的邏輯流程。
·擴(kuò)展的正規(guī)表達(dá)式——正規(guī)表達(dá)式頻繁地應(yīng)用于模式匹配、模式替換以及一般的字符串操作。PHP支持所有常用的正規(guī)表達(dá)式操作。
·原始的HTTP Header控制——根據(jù)某種條件,讓W(xué)eb頁面能夠發(fā)送自定義的原始HTTP頭對一些高級的網(wǎng)站設(shè)計(jì)來說是非常必要的。一個(gè)常見的用法就是發(fā)送一個(gè)Location:URL頭,把客戶端的請求重定向到另外一個(gè)URL上。也可以用來關(guān)閉緩存或操作頁面最新更新的HTTP頭。
·動(dòng)態(tài)創(chuàng)建GIF圖片——PHP已經(jīng)支持Thomas Boutell的GD圖片庫,可以實(shí)現(xiàn)GIF圖片的動(dòng)態(tài)創(chuàng)建。
·支持ISP“安全模式”——PHP支持獨(dú)特的“安全模式”,從而使得多個(gè)用戶運(yùn)行同一臺服務(wù)器上的PHP腳本變得更加安全。
·新發(fā)布的PHP中又增加了許多新的功能。可訪問PHP的主站點(diǎn)http://www.php.net。
·PHP是免費(fèi)的!——這是最后一個(gè)重要特色。PHP的程序包是完全免費(fèi)的。它遵守GNU/GPL。你可以把這個(gè)軟件用于實(shí)現(xiàn)商業(yè)或者其它任何目的。
5.1 PHP相對于Java的優(yōu)勢
PHP是一種已經(jīng)確定下來的,用于創(chuàng)建動(dòng)態(tài)網(wǎng)頁的服務(wù)器端的腳本語言。作為一種為Web而特別設(shè)計(jì)的語言,PHP帶來了許多商業(yè)機(jī)構(gòu)渴望的特性。
·極短學(xué)習(xí)周期
·快速的開發(fā)時(shí)間
·非常高的性能
這對于缺乏熟練編程人員,時(shí)間又非常緊迫的公司來講,具有非常重要的意義。PHP可以在所有主要的操作平臺(UNIX,Windows,甚至是大型機(jī))上運(yùn)行,而且生來就支持各種流行的數(shù)據(jù)庫。所有這一切決定它是一種進(jìn)行Web開發(fā)的非常理想的選擇:曾有運(yùn)用PHP技術(shù)的網(wǎng)上商店稱,他們只需雇傭業(yè)余的程序員,幾天內(nèi)就能夠開發(fā)出可重用的代碼。那些熟悉諸如C,C++或Java等語言的程序員們,也總是發(fā)現(xiàn)他們能夠在幾個(gè)小時(shí)之內(nèi)就能夠進(jìn)行PHP編程。
PHP是針對Web開發(fā)而設(shè)計(jì)的,這一事實(shí)使它成為一種獨(dú)具特色的開發(fā)工具,就象Intranet Design雜志評價(jià)的那樣:
“PHP是構(gòu)建在Web開發(fā)人員現(xiàn)實(shí)需求之上的....不同于其它笨重的,高負(fù)荷的方法,PHP非常輕便,是為Web開發(fā)度身定做的。它可以比其它同類技術(shù)更快,更容易的解決復(fù)雜的問題!
Java作為一種新的編程語言,最初用于運(yùn)行嵌在瀏覽器中的客戶端應(yīng)用程序。在過去短短幾年中,“applet”所暴露的問題迫使SUN和其它Java開發(fā)人員為該語言尋找新的出路。其中最為突出的就是服務(wù)器端編程,它允許Web站點(diǎn)連接數(shù)據(jù)庫并產(chǎn)生其它服務(wù)器端的應(yīng)用程序,即“servlets”。SUN最終推出了Java Server Pages(JSP)作為編寫servlets的手段。與PHP一樣,JSP在不同平臺間也具有高可移植性(盡管PHP支持任何32位以及32位以上的平臺,而JSP只能在安裝了Java虛擬機(jī)的平臺上運(yùn)行)。 然后,一個(gè)沒有編程背景的新手會發(fā)現(xiàn),使用servlets編程是一件極為困難的事,原因在于該語言的復(fù)雜性以及JSP系統(tǒng)復(fù)雜的設(shè)計(jì)方式。
JSP的性能也存在許多待改進(jìn)的地方:ZDnet的在線刊物eWeek最近的一項(xiàng)調(diào)查發(fā)現(xiàn),PHP的運(yùn)行速度差不多是JSP的3.7倍?梢哉f,JSP是Web環(huán)境中非常差的一種解決方案,這是因?yàn)樗棵腌娭荒芴幚砗苌俚氖聞?wù),而且響應(yīng)速度相當(dāng)?shù)穆?
ZDnet的eWeek雜志還提到:
“JSP是一項(xiàng)相對較新的技術(shù),從開發(fā)工具、資源、人才方面來看,還未具有完全的市場成熟度。”......由于JSP是基于Java的,而Java由是一種強(qiáng)類型的語言,所以我們不得不聲明變量的類型,并在需要的地方手工轉(zhuǎn)換類型。這使得JSP成為業(yè)余程序員最難于學(xué)習(xí)的一種腳本語言。
PHP與Java協(xié)同工作
JSP僅僅是一種能夠訪問Java對象的語言罷了,認(rèn)識到這一點(diǎn)很重要。而PHP也可以整合Java,這意味著,PHP可以象JSP一樣,成為一種能夠調(diào)用Java邏輯的腳本語言。但與JSP不同的是,PHP還可以調(diào)用其它組件模型,如Microsoft的COM,而且增加對新的對象模型的支持也極為容易。可見,PHP的擴(kuò)展能力是無窮的。而另一方面,JSP完全依賴于Java。
IBM程序員Sam Ruby聯(lián)合使用PHP和Java。通過PHP對Java的良好支持,使得Java對象如同常規(guī)的PHP對象一樣,透明地被創(chuàng)建和使用。
AutionWatch網(wǎng)站使得各種規(guī)模的商業(yè)團(tuán)體都可以從其動(dòng)態(tài)競價(jià)環(huán)境中獲益。它每月的訪問人數(shù)在二百六十萬以上;已有三十多萬個(gè)注冊用戶;每個(gè)月進(jìn)行一百二十萬次拍賣。 他們曾嘗試使用Java,但還是選擇了PHP,就因?yàn)樗菀资褂,開發(fā)速度更快。若想知道的更多,請聯(lián)系Ben Margolin,他是AuctionWatch網(wǎng)站銷售服務(wù)部的主任(ben@auctionwatch.com)。
編程顧問Reuven Lerner曾在各種語言之間作過比較。他對PHP的看法概括如下:
“這是門容易學(xué)習(xí)的語言。美工和Web設(shè)計(jì)師可能會說他們并非程序員,但事實(shí)上,他們在大型項(xiàng)目中,越來越多的使用了JavaScript,VBScript以及其它一些簡單的編程語言。與Perl相比,PHP更加正規(guī)和明確;對一個(gè)新手來說,PHP比Java更容易掌握。確實(shí),PHP有點(diǎn)象JavaScript(如果存在服務(wù)器端版本的話)。任何人,不管有無編程經(jīng)驗(yàn),都可以在很短的時(shí)間里學(xué)會并使用PHP。這一點(diǎn)也許VBScript可以做到,但Perl和Java肯定不行.....PHP絕對是一個(gè)非凡的,強(qiáng)大的系統(tǒng)。無怪乎能夠成為創(chuàng)建Web站點(diǎn)的流行語言.....我認(rèn)為,PHP將成為Java和JSP強(qiáng)有力的競爭對手,我會在某些客戶和公司內(nèi)部項(xiàng)目中極力推薦PHP!
PHP:一直在前進(jìn)
JSP有Sun作為其后盾,因此不斷獲得媒體的關(guān)注。但有趣的是,盡管沒有任何宣傳攻勢,PHP的流行度仍然以8-11%的速度在增長,遠(yuǎn)遠(yuǎn)大于服務(wù)器端應(yīng)用程序4%的月增長率。有六百五十萬個(gè)站點(diǎn)使用了PHP(參見Netcraft 2001年5月的調(diào)查報(bào)告)。39%的Apache服務(wù)器上配置了PHP;而Perl占了11%的市場分額,名列第四。Apache保持著59%的Web服務(wù)器市場占有率;Microsoft次之,僅28%(參見E-Soft Inc./SecuritySpace 2001年5月的調(diào)查報(bào)告)。
使用PHP的著名公司有:Unilever、Philips、NTT、Cisco、 Japan Airlines、 Air Canada、 Lufthansa、GE Marketplace、 Wallstreet:Online Germany、 AuctionWatch、 VillageVoic、 Dialpad以及BMC。
1.Intranet Design雜志:一個(gè)IT經(jīng)理對PHP的看法,2000年6月4日。
http://linuxtoday.com/news_story.php3?ltsn=2000-06-04-002-04-NW-HL-SW
2.eWEEK:四中腳本語言的速度開發(fā),2000年10月30日。
http://www.zdnet.com/eweek/stories/general/0,11011,2646052,00.html