什么不是單一入口
從前些網(wǎng)站题山,要訪問一個頁面兰粉,需要在地址欄中輸入域名加上頁面名稱,如下:
// 訪問登錄頁面
http://www.abc.com/login.html
// 訪問注冊頁面
http://www.abc.com/register.html
這種就不是單一入口機制顶瞳。
什么是單一入口機制
接著上面的例子玖姑,同樣是訪問登錄和注冊頁面,示例如下:
// 通過單一入口訪問登錄頁面
http://www.abc.com/index.php?page=login
// 通過單一入口訪問注冊頁面
http://www.abc.com/index.php?page=regist
這里的單一入口很明顯就是index.php
慨菱。
有如下幾個特點:
訪問單個模塊內(nèi)的頁面焰络,都通過入口文件。即:模塊的代碼執(zhí)行從入口文件開始符喝。
一個項目內(nèi)可能有多個模塊闪彼,每個模塊都有一個單一入口文件,比如前臺模塊
index.php
,后臺模塊admin.php
洲劣。
以上說的就是單一入口機制备蚓。
簡單的實現(xiàn)
上面舉了一個例子,接下來我們嘗試著實現(xiàn)它囱稽。
編寫入口文件
我們需要獲取瀏覽器 URL 中的參數(shù)郊尝,然后根據(jù)參數(shù)內(nèi)容引入 PHP 文件。所以先編寫index.php
文件战惊。
// 獲取路徑當(dāng)中的 page 參數(shù)流昏,如果不存在,則賦值為 404
$page = $_GET['page'] ? $_GET['page'] : '404' ;
// 引入 page 所指的頁面
include $page .'.php';
接下來以此實現(xiàn)login.php
吞获、register.php
以及404.php
况凉。
例如 login.php
偽代碼:
echo 'Login page';
單一入口機制的優(yōu)點
我們用它,那么為什么用它各拷,它能給我們帶來什么好處呢刁绒?
可以在入口文件中添加通用操作,例如版本檢查烤黍,降低代碼維護成本知市。
單一入口機制的缺點
世間事物都具有雙面性傻盟,單一入口機制有什么缺點呢?
由于路徑不美觀嫂丙,所以搜索引擎不喜歡娘赴。即不利于 SEO 。