很少有編程語(yǔ)言能夠像 PHP 這樣迅速地得到普及。現(xiàn)在廣泛宣傳的那個(gè)關(guān)于自己動(dòng)手做 (DIY) 的 " /> 奇米影视一区二区三区,中国黄色毛片 大片,亚洲最大激情中文字幕

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

PHP 已經(jīng)成熟

由于 php 正在成熟,因此是快速即編即用的腳本編制人員與了解 UML 的面向?qū)ο蟮拈_(kāi)發(fā)人員“思想達(dá)成一致”的時(shí)候了。

  很少有編程語(yǔ)言能夠像 php 這樣迅速地得到普及。現(xiàn)在廣泛宣傳的那個(gè)關(guān)于自己動(dòng)手做 (DIY) 的腳本編制語(yǔ)言改變 IT 業(yè)的故事表明,成功不一定總是來(lái)自于系統(tǒng)計(jì)劃和市場(chǎng)研究。但是現(xiàn)在的實(shí)際問(wèn)題是這種成功如何能夠?yàn)辇嫶蟮?IT 業(yè)所接受。Oracle 以及其他幾個(gè)大的參與者正在關(guān)注 php 錚錚事實(shí)表明,這種語(yǔ)言已經(jīng)成熟。

  直到現(xiàn)在,成功也只是剛剛“出現(xiàn)”。數(shù)量不斷增長(zhǎng)的愛(ài)好者已經(jīng)聚集在 php 周圍,就象聚集在一個(gè)天才神童身邊一樣。但是既然這個(gè)孩子正在長(zhǎng)出胡子,并開(kāi)始以平等的地位與成人交談,那么早期的擁護(hù)者會(huì)適應(yīng)這種變化嗎?

  php 與大部分主要的開(kāi)放源代碼項(xiàng)目一樣,是正在成為主流技術(shù)的過(guò)程中的一種基本現(xiàn)象。php 會(huì)使那些使它獲得名譽(yù)的人們失望嗎?它會(huì)達(dá)到龐大的 IT 業(yè)的期望嗎?

兩種編程文化的故事

  php 的成功吸引了不同背景人士的注意。早期的 Rasmus 的擁護(hù)者(如果您能諒解那些在開(kāi)放源代碼圈內(nèi)不常出現(xiàn)的略以救世者自居的語(yǔ)氣)習(xí)慣于快速的即編即用的腳本編制方法,他們現(xiàn)在必須對(duì)付那些了解 UML、面向?qū)ο?(OO) 編程的開(kāi)發(fā)人員,這些開(kāi)發(fā)人員決心使 php 與其他現(xiàn)代開(kāi)發(fā)工具并駕齊驅(qū)。雙方都很了解 Web 開(kāi)發(fā),都擁有強(qiáng)大的文化。忽略任何一方都是不明智的。

  早期的 php 類型了解 Web 開(kāi)發(fā)的哪些方面,它擅長(zhǎng)做什么,不擅長(zhǎng)做什么?它了解很多關(guān)于設(shè)計(jì)的問(wèn)題。它的風(fēng)格有時(shí)可能會(huì)有問(wèn)題,但可以看出它擁有 HTML 和 CSS 功能,不必說(shuō)更為流行的多信息互聯(lián)網(wǎng)應(yīng)用程序 (RIA) 技術(shù)了。它總是那么年輕,卻經(jīng)常出現(xiàn)在 php 論壇中。術(shù)語(yǔ)“面向?qū)ο蟆睂?duì)于它可能具有負(fù)面的涵義。它的代碼很扼要,注重表現(xiàn)而不注重可維護(hù)性。

  由于采用類型松散的變量和為其 HTML 代碼填充 <?php?> 語(yǔ)句,因此 UML 類型將更缺乏吸引力。它將要考慮應(yīng)用程序體系結(jié)構(gòu)、類級(jí)代碼重用、團(tuán)隊(duì)合作以及源代碼管理。它知道,即使復(fù)雜度適中的網(wǎng)站首先也是一個(gè)應(yīng)用程序,而設(shè)計(jì)不良的應(yīng)用程序會(huì)導(dǎo)致工期延誤、惹惱客戶甚至丟掉工作。

  乍一看來(lái),后者似乎更適應(yīng)于需求越來(lái)越多的環(huán)境,在這種環(huán)境中,Web 開(kāi)發(fā)將會(huì)越來(lái)越多地受到營(yíng)銷策略和經(jīng)濟(jì)因素的驅(qū)動(dòng)。但是我們是否應(yīng)該把前者看作瀕臨滅絕的物種?或許不應(yīng)該這樣。如果我們承認(rèn) Web 是與臺(tái)式機(jī)系統(tǒng)差別很大的一種媒介 ― 更不要說(shuō)大型機(jī)了(還有人記得 3270 嗎?),在大型 機(jī)環(huán)境中產(chǎn)生了占統(tǒng)治地位的開(kāi)發(fā)方法 ― 則我們可能會(huì)得出結(jié)論,畢竟可以從這種成功卻相對(duì)雜亂的方法中學(xué)到很好并且有效的東西。

  讓我們來(lái)回顧實(shí)際的問(wèn)題,以便在其可能發(fā)生之前加以克服,并回顧一些實(shí)際的工作方法。

彌補(bǔ)文化差距

  現(xiàn)在 php5 即將把面向?qū)ο蠹夹g(shù)帶入到 php 世界中。Zend 引擎修改 (ZE2) 正在將對(duì)象引入到該語(yǔ)言的核心。不僅新的語(yǔ)言構(gòu)造鼓勵(lì)對(duì)象編程風(fēng)格,而且語(yǔ)言的實(shí)施也正在適應(yīng)其他的面向?qū)ο蟓h(huán)境。例如,不再以缺省方式將對(duì)象進(jìn)行來(lái)回的復(fù)制,而是通過(guò)引用來(lái)進(jìn)行處理。引入了新的關(guān)鍵字(如 final 或 static),它們只與對(duì)象概念相關(guān),是對(duì) Java 風(fēng)格的保留;其他特性(如委托)鼓勵(lì)使用對(duì)象設(shè)計(jì)模式。(期待在幾個(gè)月的時(shí)間后能夠聽(tīng)到大家談?wù)摗霸械?php4”。) 這種深刻的變化來(lái)自于向當(dāng)前占優(yōu)勢(shì)的編程模型進(jìn)行無(wú)情的革命性轉(zhuǎn)移。無(wú)論您喜不喜歡,對(duì)象方法都將會(huì)流行,因?yàn)樗炎C明自己在提供復(fù)雜應(yīng)用程序方面最有效,無(wú)論它們是不是 Web 應(yīng)用程序。這使得我們別無(wú)選擇,只能尋找富于想象力的方法來(lái)協(xié)調(diào)兩種文化,以便具有設(shè)計(jì)思想的人與了解體系結(jié)構(gòu)的人能夠取長(zhǎng)補(bǔ)短。

  為此,必須開(kāi)發(fā)(或從其他平臺(tái)中變換出)各種方法,以便在將其包含在清晰的界限內(nèi)的同時(shí)獲得語(yǔ)言的多功能性。這樣,編程創(chuàng)造力的“孤島”就可以存在于強(qiáng)健的體系結(jié)構(gòu)中。

  一個(gè)明顯的事實(shí)是,盡管 php CMS 或應(yīng)用程序框架的數(shù)量呈爆炸性增長(zhǎng),卻沒(méi)有關(guān)于它們的一致意見(jiàn)。經(jīng)常出現(xiàn)的報(bào)怨是,無(wú)論您的項(xiàng)目是什么,現(xiàn)有系統(tǒng)都不能完成任務(wù)。人們大都開(kāi)始于對(duì)若干系統(tǒng)的評(píng)估,而最后經(jīng)常是從頭開(kāi)發(fā)自己的框架。這是為什么?

  在臺(tái)式機(jī)系統(tǒng)中,似乎已經(jīng)由操作系統(tǒng)徹底解決了 GUI 設(shè)計(jì)問(wèn)題,與此相反,Web 是個(gè)原始視覺(jué)設(shè)計(jì)舉足輕重的平臺(tái)。Web 站點(diǎn)承載商業(yè)公司的形像和個(gè)性,可能會(huì)日益影響其收入。視覺(jué)創(chuàng)造力與品牌共同發(fā)揮作用,因此必須促進(jìn)它們的發(fā)展。

  同時(shí),必須能夠?qū)㈧`活的邏輯編入到應(yīng)用程序中,以便盡可能改善用戶體驗(yàn),應(yīng)牢記,用戶在 Web 上要比在臺(tái)式機(jī)系統(tǒng)中可能表現(xiàn)的更“菜”。

  當(dāng)設(shè)計(jì)人員不斷對(duì)程序員所設(shè)計(jì)的系統(tǒng)感到失望時(shí),這是個(gè)問(wèn)題,而當(dāng)開(kāi)發(fā)人員不得不將應(yīng)用代碼強(qiáng)行加入到不完備的門戶框架中時(shí),這同樣是個(gè)問(wèn)題。最常見(jiàn)的結(jié)局就是無(wú)法令人滿意的折中 ― 有些呆板的外觀、為了將應(yīng)用的復(fù)雜性限制在某個(gè)可管理級(jí)別而犧牲了很多可用性。(這種現(xiàn)象并不只限于 php 應(yīng)用程序。)

  為了徹底克服這些限制,設(shè)計(jì)人員和面向?qū)ο箝_(kāi)發(fā)人員必須找到一種不阻礙對(duì)方工作的協(xié)作方法。最好的方法可能是從了解對(duì)方團(tuán)隊(duì)如何工作開(kāi)始。

從技巧到產(chǎn)業(yè)

  此刻先不要考慮協(xié)作問(wèn)題,讓我們觀察各自的實(shí)際操作。讓我們按照 php 的歷史順序開(kāi)始,首先訪問(wèn)一個(gè)“增強(qiáng) html”使用者的商店。

  進(jìn)行交易的工具非常類似于“純 html”使用者的工具:一些 html 編輯器,具有各種級(jí)別舒適特性和項(xiàng)目管理特性,并在某種程度上與 phpASPJavaScript 以及較次要工具相集成。

  讓我們花點(diǎn)時(shí)間仔細(xì)觀察一下代碼。我們首先會(huì)注意到,使用這些不同種類的工具生成的網(wǎng)站非常漂亮。我們?cè)谶@里不僅指技術(shù),也指天賦。由于擺脫了抽象編程因素的限制,Web 設(shè)計(jì)人員通過(guò)擺弄積極、微妙的情感效果(類似于機(jī)敏的裝飾人員在真實(shí)商店中所營(yíng)造的效果)營(yíng)造了令您網(wǎng)站的客戶感到安適的視覺(jué)環(huán)境。

  當(dāng)我們從經(jīng)過(guò)訓(xùn)練的面向?qū)ο缶幊陶叩慕嵌葋?lái)看這些代碼時(shí),事情卻突然變得很糟。代碼看上去就象它本身一樣:它是一次性的、用完即忘的工作,沒(méi)有為將來(lái)的發(fā)展或者為簡(jiǎn)易的維護(hù)作出任何準(zhǔn)備。經(jīng)常這樣,的確如此。

  那么,這有什么不好嗎?它以后是否會(huì)成為一個(gè)難題,導(dǎo)致放棄部分或整個(gè)網(wǎng)站并從頭開(kāi)始重建呢?或許不是。畢竟,真實(shí)商店的裝修經(jīng)常定期拆除并重建。因此,就這些櫥窗式的網(wǎng)站而言,牛仔風(fēng)格的 php 編程已經(jīng)夠用了。這種語(yǔ)言富含各種有助于實(shí)現(xiàn)旨在吸引訪問(wèn)者注意的視覺(jué)效果的技巧。這里顯然與對(duì)象方法無(wú)關(guān)。

  一旦需要某些應(yīng)用邏輯時(shí),這種觀點(diǎn)就發(fā)生顯著的變化。您是否需要若干表單來(lái)收集有關(guān)您網(wǎng)站的常客的少量的營(yíng)銷信息?如果您希望這種信息能夠很中肯,則最好添加校驗(yàn)代碼。如果這樣做,您應(yīng)該確保可以過(guò)濾惡意腳本或 SQL 指令侵入式攻擊。順便說(shuō)一下,既然您正在閱讀 OTN 文章,因此您一定熟悉數(shù)據(jù)庫(kù) (DB) 問(wèn)題。您將要收集的這些信息將會(huì)存放在某些數(shù)據(jù)庫(kù)表中,而您的 php 代碼中的 SELECT 語(yǔ)句將反映這種數(shù)據(jù)庫(kù)結(jié)構(gòu)。從現(xiàn)在開(kāi)始,這個(gè)網(wǎng)站已經(jīng)固定在您的業(yè)務(wù)基礎(chǔ)架構(gòu)中 ― 它正在成為成熟的應(yīng)用程序。

  我們暫時(shí)不要管其所有的硬編碼鏈接、危險(xiǎn)的類型轉(zhuǎn)換以及安全漏洞,接著訪問(wèn)最新的 php 面向?qū)ο?a href=/pingce/yingyong/ target=_blank class=infotextkey>應(yīng)用程序裝配線。對(duì)于我們那些具有藝術(shù)家風(fēng)范的 Web 設(shè)計(jì)人員而言,這種地方可能并不熟悉,甚至可能并不友好。在這里不太看重技巧。Web 開(kāi)發(fā)已經(jīng)產(chǎn)業(yè)化了。要想為這里所接受,您必須熟悉類、繼承、數(shù)據(jù)抽象以及大量的代碼封裝工具。

  團(tuán)隊(duì)協(xié)作需要規(guī)則。必須遵循編程慣例;必須將源文件提交版本管理和源代碼管理。文件根據(jù)嚴(yán)格的模塊化層次進(jìn)行組織。摒棄了那些有危險(xiǎn)的編碼技巧 ― 尤其是那些耍小聰明的技巧。代碼不僅必須易讀,而且必須有良好的注釋。

  這樣可能令人厭煩,但卻很有效。現(xiàn)在我們正在創(chuàng)建 Web 應(yīng)用程序:內(nèi)聯(lián)網(wǎng)、商業(yè) Web 站點(diǎn)、電子市場(chǎng)、各種應(yīng)用程序,其中具有缺陷的設(shè)計(jì)都可能會(huì)導(dǎo)致停業(yè)。簡(jiǎn)言之,我們正在克服復(fù)雜性。

  php 面向?qū)ο笱b配線的管理者并沒(méi)有選擇 php,因?yàn)樗麄儫釔?ài)這種語(yǔ)言。他們之所以這樣做,是因?yàn)樗坏芟衲切S械钠渌Z(yǔ)言一樣有效地完成工作,而且還是免費(fèi)的,并且沒(méi)有任何附加條件。

我們要走向何處?

  那么我們將如何利用由那些經(jīng)過(guò) C++ 和 Java 培訓(xùn)的人們所提供的行業(yè)級(jí)方法,以完成對(duì)早期使用者所使用的多功能語(yǔ)言的專業(yè)技術(shù)的潛在補(bǔ)充?

  php5 將會(huì)動(dòng)搖很多習(xí)慣,因此這個(gè)問(wèn)題可能為時(shí)尚早。有些人將被迫采用一定程度的面向?qū)ο蠓椒ǎ硪恍┤俗罱K會(huì)了解面向?qū)ο蟮乃袃?nèi)容并成為它的信仰者。某些小環(huán)境可能會(huì)象過(guò)去那樣良好運(yùn)行并繼續(xù)興盛發(fā)展。

讓我們來(lái)實(shí)踐一下

  現(xiàn)在讓我們深入到基礎(chǔ)的技術(shù)級(jí)別,了解如何養(yǎng)成簡(jiǎn)單的習(xí)慣,以及尋找簡(jiǎn)單而有效的解決方案將會(huì)如何幫助我們準(zhǔn)備好應(yīng)對(duì)即將來(lái)臨的變化。大量非常簡(jiǎn)單的慣例有助于促進(jìn)編程,并使應(yīng)用程序準(zhǔn)備好進(jìn)行擴(kuò)展。

  命名慣例(C++ 編程人員的習(xí)性)是最容易的方式。如果您已經(jīng)大量使用了代碼庫(kù)(例如 PEAR),則將其慣例作為自己的慣例可能是個(gè)好主意;否則應(yīng)制定您自己的內(nèi)部規(guī)則。簡(jiǎn)化的匈牙利批注(根據(jù)其匈牙利發(fā)明者 Charles Symonyi 而命名)可在松散類型所允許的范圍內(nèi)廣泛應(yīng)用。您還可以使用下劃線作為類成員的前綴。另一個(gè)有用的習(xí)慣是,向那些并不用于從類外部進(jìn)行調(diào)用的方法(屬于一個(gè)類的函數(shù))附加一個(gè)特殊的前綴(例如 impl_)。

  無(wú)論您采用什么命名慣例,都要盡可能使您的代碼明確清楚。這樣,經(jīng)過(guò)訓(xùn)練的人員就可能在滿屏的 php 中發(fā)現(xiàn)編程錯(cuò)誤,只因?yàn)樗瓷先ゾ陀袉?wèn)題,就象肖像上的一個(gè)污點(diǎn)。

  命名慣例的另一個(gè)重要方面是避免名稱沖突,使得在大范圍中重用代碼成為可能。經(jīng)驗(yàn)告訴我們,程序員在命名編程對(duì)象方面并不總是非常富有想像力。很有可能,存在很多的 Page 類,而且也不是沒(méi)有可能當(dāng)您要重用兩個(gè) Page 類時(shí)卻發(fā)現(xiàn),它們只是名稱相同而用途卻迥異。真不夠走運(yùn)的。從長(zhǎng)遠(yuǎn)看來(lái),重命名將會(huì)帶來(lái)維護(hù)問(wèn)題。您最好一開(kāi)始就避免這個(gè)問(wèn)題。生成 GUID 將會(huì)矯枉過(guò)正、難看(例如 _16B280C5_EE70_11D1_9066_00C04FD9189D_Page!)并且有悖于 php 的精神。

  一種簡(jiǎn)單并可以防止沖突的方法是,通過(guò)將類的幾個(gè)不同方面關(guān)聯(lián)到其名稱中(例如 GalleryPage),確保內(nèi)部類的唯一性;而后,為了消除與您控制范圍之外的類發(fā)生沖突的各種可能,您可以按 Java 的方式將您擁有的域名的保留版本作為它的前綴 (com_mydomain_GalleryPage)。

  要養(yǎng)成的另一個(gè)習(xí)慣不需要您花費(fèi)什么,并且當(dāng)某個(gè)應(yīng)用程序范圍的意外變化不可避免時(shí),它可以節(jié)省您的工作,這就是將最常用的基本語(yǔ)句封裝在一個(gè)單獨(dú)的渠道中。例如,除了調(diào)試代碼,在整個(gè)應(yīng)用程序中只應(yīng)該有一個(gè)“響應(yīng)”語(yǔ)句,它應(yīng)該在某個(gè)函數(shù)(或單獨(dú)的類方法)中。如果某個(gè)新環(huán)境中需要對(duì)輸出進(jìn)行預(yù)處理或重定向,則您知道應(yīng)該將所需的幾行代碼寫在哪里,而不必面對(duì)那種搜索和編輯大量文件的令人沮喪的情況。

  錯(cuò)誤處理不必像 C++ 中那樣嚴(yán)格 ― 在 C++ 中,一個(gè)懸空指針 (dangling pointer) 或者緩沖區(qū)溢出可能極具破壞性。當(dāng)沒(méi)有危及數(shù)據(jù)完整性時(shí),試著大方地放下架子告訴訪問(wèn)者,盡管某些功能不太完善,但她可以再試試。一個(gè)經(jīng)常被忽視的好幫手是標(biāo)準(zhǔn)的 set_error_handler() 函數(shù)。這是另一個(gè) ― 這次是基本事件 ― 封裝到一個(gè)集中位置(其中所有代碼都專門用于處理這些基本事件)的例子。如果您希望保留所有發(fā)生錯(cuò)誤的事件日志,以便找出重復(fù)發(fā)生的問(wèn)題,則應(yīng)該在這里完成這項(xiàng)工作。

  在我們結(jié)束低級(jí)編程討論之前,還有另外一個(gè)救命招術(shù)。在 php5 中,缺省情況下,分配或傳遞對(duì)象引用(引用是對(duì)象的句柄,而不是對(duì)象本身或?qū)ο蟮母北荆V灰覀冞€需要使用 php4,就必須認(rèn)真注意對(duì)象的傳遞方式。某些微妙之處可能使您心神不寧。例如,以下語(yǔ)句導(dǎo)致 $obj2 成為 $obj1 的副本;這并不奇怪。

$obj2=$obj1;

  函數(shù)將使用副本并返回副本,除非另有指定 ― 我們只得接受這種情況。以下示例導(dǎo)致很多了難以跟蹤的錯(cuò)誤:

class ObjectKeeper {
    var $_obj; // Whatever object is
    function & get_object() {
        return $this->_obj;
    }
}
//引用可以良好地返回。現(xiàn)在陷阱出現(xiàn)了:
$keeper = new ObjectKeeper();
$obj1 = $keeper->get_object();
$obj1->modify();
$obj2 = $keeper->get_object(); // Ask new reference to same object
if ($obj2->is_modified()) {
    echo 'OK'; // 這將永遠(yuǎn)不會(huì)打印
}

正確的語(yǔ)句應(yīng)該是:

$obj1=&$keeper->get_object(); // 注意,是“=&”而非“=”

  如果沒(méi)有 =&,則返回的引用所指向的對(duì)象的副本被分配給 $obj1,而無(wú)論您對(duì)您認(rèn)為正確的引用進(jìn)行什么操作,也不會(huì)影響原始對(duì)象的狀態(tài)。換言之,您的更新將會(huì)丟失。

  在協(xié)調(diào) Web 設(shè)計(jì)人員與程序員的文化方面,模板可能會(huì)大有幫助。它們通常包括布局中所配備的一切(主要是 HTML 代碼),而在生成頁(yè)面時(shí),模板引擎填入所有可變的內(nèi)容。大部分模板引擎帶有高速緩存機(jī)制,確保相關(guān)的耗費(fèi)資源的處理只發(fā)生在數(shù)據(jù)源更新要求進(jìn)行這些處理的時(shí)候。

接下來(lái)的步驟


論壇:Oracle 上的 php

php 漫游者指南

開(kāi)放源代碼開(kāi)發(fā)人員中心

Oracle + php 疑難解答指南

php 腳本編制:隨心所欲的代碼逐漸流行

Oracle + php 使用入門

在 Linux 上安裝 Oracle、php 和 Apache

  模板引擎允許在相當(dāng)大的程度上將布局和圖形分在一端,將商務(wù)邏輯分在另一端。最流行的模板引擎可能是 Smarty,它也恰好被集成在很多開(kāi)放源代碼的 CMS 和框架項(xiàng)目中。

  最后,必須注意當(dāng)邏輯超出基本的搜索取代式的替換時(shí),模板引擎傾向于提供編程方言。將來(lái)的方法很可能依靠 XSLT 技術(shù),而 php5 中的擴(kuò)展 XML 支持將會(huì)因此而改變很多。

  最后卻是相當(dāng)重要的一個(gè)實(shí)踐方面:從眾所周知的庫(kù)中重用一流的代碼。我們的研究將只限于 PEAR,因?yàn)樗F(xiàn)在是標(biāo)準(zhǔn) php 發(fā)行版本中的一部分。

  PEAR 可能目前更接近于真正標(biāo)準(zhǔn)的 php 軟件組件。嚴(yán)格選擇提供者以及嚴(yán)格的質(zhì)量標(biāo)準(zhǔn)確保了組件與商業(yè)級(jí)組件一樣優(yōu)秀。版本控制慣例為您提供精確控制,以確定組件的哪個(gè)版本適合于您的應(yīng)用程序。PEAR 提供從表單處理到數(shù)據(jù)庫(kù)抽象層 (PEAR::DB) 等一系列豐富的功能,并包括 Web 服務(wù)或 WebDAV 支持等高級(jí)特性。
  不用說(shuō),通過(guò)熟悉 PEAR 以及類似的 php 代碼庫(kù),您可以節(jié)省很多天緊張的研發(fā)工作。

php5 呼之欲出

  php 已經(jīng)使自己成為最大的開(kāi)放源代碼成功的故事之一,與 Linux 和 Apache 齊頭并立。盡管尚有不理想之處,但它已經(jīng)在 IT 界牢牢站穩(wěn)了腳跟,并且其龐大的基層用戶群仍然很喜歡它。

  php5 可能會(huì)促進(jìn)負(fù)擔(dān)沉重的 Web 應(yīng)用程序的開(kāi)發(fā),與數(shù)據(jù)庫(kù)進(jìn)行交互作用的業(yè)務(wù)邏輯層越來(lái)越多地接受 php 代碼。同時(shí),靈活的編程方法將會(huì)越來(lái)越多地使用 XML 技術(shù),使 Web 設(shè)計(jì)人員更容易與開(kāi)發(fā)人員和軟件設(shè)計(jì)人員進(jìn)行無(wú)摩擦的協(xié)作。
  我們期待看到新一代非常具有吸引力并且非常好用的基于 php 的 Web 應(yīng)用程序。

php技術(shù)PHP 已經(jīng)成熟,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 91精品视频免费在线观看 | 久久婷婷五综合一区二区 | 天天做天天爽爽快快 | 综合激情六月 | 国产在线精品观看 | 日本精品一区二区在线播放 | 好吊妞视频988在线播放 | 成人国产在线视频在线观看 | 久久综合九色综合狠狠97 | 久久精品资源 | 爱丝福利视频 | 国产在线观看91精品 | 在线观看中文字幕国产 | 国产91福利 | 国产成人理在线观看视频 | xh98hx国产免费 | 女人毛片视频 | 国产色网址 | 亚州第一视频 | 午夜黄色福利视频 | 99综合在线| 五月婷婷一区 | 国产99在线观看 | 国产一区二区不卡 | 国产高清在线视频 | 亚洲欧美另类久久久精品能播放的 | 天天色天天舔 | 麻豆视频观看 | 国产在线91 | 高清国产一区 | 91视频最新地址 | 亚洲a视频在线 | 黄色的视频免费 | 婷婷综合五月中文字幕欧美 | 天天综合色天天综合网 | 黄 色 片 在 线 看 | 欧美一级特黄一片免费 | 精品国产香蕉在线播出 | 日韩亚洲欧美综合一区二区三区 | 国产激情在线观看 | 久久久精品免费 |