国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
PHP 單一入口的特有作用
分類: PHP 2012-01-05 22:05 1697人閱讀 評論(0) 收藏 舉報
在說單一入口之前,先說說多入口。Discuz!, PHPCMS 2008, DedeCMS 都是采用多入口的結(jié)構(gòu)。

多入口,即通過訪問不同的 php 文件運行對應(yīng)的功能。如:

/index.php - 網(wǎng)站首頁
/show.php?id=1 - 內(nèi)容頁
/list.php?page=2 - 列表頁
/login.php - 用戶登錄頁
……

多入口都是通過包含頭文件統(tǒng)一運行環(huán)境,即初始化系統(tǒng)。如:

/include/common.inc.php - 頭文件,PHP 文件 include 它后便完成了初始化工作,例如可以使用系統(tǒng)的基礎(chǔ)函數(shù)。

/index.php
<?php
include './include/common.inc.php' // 包含頭文件,基本是每個入口 php 文件的首行代碼。
……
?>

拿 PHPCMS 2008 的頭文件來舉例, PHPCMS 2008 在頭文件中完成了基礎(chǔ)函數(shù)的加載,常量的定義,系統(tǒng)配置的載入,POST,GET 數(shù)據(jù)的過濾,數(shù)據(jù)庫類的實例化,保持用戶登錄等等等等一系列操作。
反正就是個 php 文件嘛,想做什么直接往里加就是了。

所以,所謂的安全檢查,統(tǒng)一檢查,權(quán)限控制等,用頭文件同樣可以實現(xiàn),所謂“單一入口”只不過是換了一種形式,并無實質(zhì)性的變化。

以前我就是這樣認為的。

現(xiàn)在,假設(shè)用 CMS 為客戶建一個站( CMS 是多入口的):建欄目,配網(wǎng)站,卡拉卡拉一段忙碌后,網(wǎng)站可以上線了,放在這個地址下:

localhost/gz/

沒錯,這次建的是 gz 這個地區(qū)的地區(qū)站,客戶認為網(wǎng)站做得不錯,希望做多一個 bj 地區(qū)的地區(qū)站。 bj 站的欄目結(jié)構(gòu),內(nèi)容,功能模塊等都與 gz 站有所不同。

好,現(xiàn)在問題來了,上面提到的三個多入口的系統(tǒng),都設(shè)計成一套程序一個環(huán)境,即一套程序只對應(yīng)一個數(shù)據(jù)庫。對于上面的需求( bj 站),除非修改整套程序的結(jié)構(gòu)(這是不切實際的),否則就只能復(fù)制多一份源代碼,指向另一個數(shù)據(jù)庫。

于是,我便復(fù)制多一份源代碼,指向 bj 數(shù)據(jù)庫( gz 站則指向 gz 數(shù)據(jù)庫),建欄目,配網(wǎng)站,卡拉卡拉一優(yōu)忙碌后,網(wǎng)站又可以上線了,放在這個地址下:

localhost/bj/

所以,現(xiàn)在有兩套一樣的程序在運行。

然后,客戶想改一改 gz 站的功能,于是我修改了 gz 的代碼。然后,客戶想改一改 bj 站的功能,于是我修改了 bj 的代碼。然后,客戶想在 bj 站上做與 gz 同樣的修改,于是我得把 gz 的修改復(fù)制到 bj 中,然后……

于是,我不得不維護兩份實際上是“一樣”的代碼。
假如網(wǎng)站運營得不錯,客戶又建了若干個地區(qū)站,我維護的便是若干份“一樣”的代碼——這根本就是惡夢。

現(xiàn)在到單一入口登場了。

單一入口,就是訪問同一個文件加不同參數(shù)運行不同的功能。如:

/index.php - 單一入口,默認顯示首頁
/index.php?action=show&id=1 - 用 action 參數(shù)指明顯示內(nèi)容頁
/index.php?action=list&page=2 - 顯示列表頁
/index.php?action=login - 用戶登錄頁
……

index.php 這個入口做的便是頭文件做的初始化操作(外加一些調(diào)度),包括加載網(wǎng)站的配置。

現(xiàn)在我們來假設(shè)建站用的 CMS 是單一入口的設(shè)計,在完成 gz 站后,面對同樣的需求( bj 站),我只需要在 /bj/ 目錄入多建一個入口文件,加載指向 bj 數(shù)據(jù)庫的配置,再配配數(shù)據(jù)卡拉卡拉什么的,就完事了!

于是,我只需要維護一份源代碼。

這便是單一入口特有的作用——構(gòu)造環(huán)境。
使用哪個數(shù)據(jù)庫就是環(huán)境的一種,類似的還有:用內(nèi)存緩存還是文件緩存,用 mysql 還是 mssql 等。

除非在設(shè)計階段特別留意,否則,頭文件的結(jié)構(gòu)都會被寫成“一套程序一個環(huán)境”的結(jié)構(gòu)。而采用單一入口結(jié)構(gòu),無論是否留意,都可以輕易實現(xiàn)“一套程序多個環(huán)境”。這才是使用單一入口的真正理由。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
建站教程>CMS建站>帝國CMS系統(tǒng)提示頁修改地點-中國西部旅游信息網(wǎng)
網(wǎng)站文章自動配圖php插件,適合任何cms
帝國cms7.2批量提取關(guān)鍵詞包含utf和gbk版本
dede cms去版權(quán)
在Red Hat Linux企業(yè)版5中安裝織夢CMS
米拓建站系統(tǒng)1day審計與利用
更多類似文章 >>
生活服務(wù)
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服