Thinkphp采用模塊化的架構思想,可以支持多模塊應用的創建,讓應用的擴展更加方便. 先簡單說下路由規則:
系統從url參數中分析當前請求的分組(平臺),控制器和操作方法的過程就是路由. tp框架路由共有四種形式 - 基本get形式 http://網址/index.php?m=分組&c=控制器&a=操作方法 該方式是最底層的get形式、傳統的參數傳遞方式,不時尚、不安全。 - PATHINFO路徑形式(默認方式) http://網址/index.php/分組/控制器/操作方法 比如:http://網址/index.php/Home/Index/advert - rewrite重寫形式(偽靜態技術)省略index.php入口文件(URL模式不可用) http://網址/分組/控制器/操作方法 http://網址/Home/Index/index - 兼容形式 http://網址/index.php?s=/分組/控制器/操作方法 http://網址/index.php?s=/Home/Index/advert
如果我們需要生成一個Admin模塊用于后臺應用,在應用入口文件中定義如下:
// 綁定Admin模塊到當前入口文件define('BIND_MODULE','Admin');define('APP_PATH','./application/');require './ThinkPHP/ThinkPHP.php';/ /可不要如果需要生成更多的控制器類,可以定義BUILD_CONTROLLER_LIST常量.
// 綁定Admin模塊到當前入口文件define('BIND_MODULE','Admin');define('BUILD_CONTROLLER_LIST','Index,User,Menu');define('APP_PATH','./Application/');require './ThinkPHP/ThinkPHP.php';注意:默認生成的控制器類都是繼承Think/Controller,如果需要繼承其他的公共類需要另外調整。 如果在應用的公共配置文件中設置關閉了 APP_USE_NAMESPACE的話,生成的控制器類則不會采用命名空間定義。
使用命名空間 通過namespace關鍵字聲明命名空間。 namespace 空間名稱; (空間名稱 按照php正確的命名方式定義即可) 命名空間針對 函數、類名、const常量 三部分起作用,并統稱為“元素”。 常量的聲明:
define(名稱,值); //(在類外部聲明常量)與命名空間沒有關系//同名稱常量只能define一次const 名稱=值; //與命名空間有關系① const可以在類的內部聲明常量信息(類常量) ② const也可以在類外部聲明常量(正常常量) 使用命名空間的時候const可以放到類外部聲明常量。 同名稱的多個常量,可以分別定義到不同的“命名空間”里邊 const和define的區別: 前者針對命名空間發生影響,后者不發生影響。 const可以聲明多個同名稱的常量 define對同名稱常量只能聲明一個 空間元素的訪問(當前空間、其他空間):
子級(多級)空間 命名空間可以讓我們存放許多元素(函數、類、常量),有的時候元素比較多,為了管理方便,可以對元素進行分門別類地存儲。也就是說命名空間可以設置為多級空間。多級空間的最后一級空間就稱為“子級空間” 多級空間的聲明及空間元素的訪問:
空間元素訪問的三種形式 ① 非限定名稱
② 限定名稱
echo beijing/Animal::$name; // 把當前空間 和 beijing空間聯合獲得Animal元素(類似php引入文件:include “Common/Conf/config.php”; 相對路徑)③ 完全限定名稱 echo /beijing/Animal::$name; //訪問beijing空間的Animal元素 (類似php引入文件:include “d:/web/1121/Conf/common.php”; 絕對路徑引入文件)
訪問空間元素的兩種方式: 限定名稱訪問元素:
限定名稱訪問元素的特殊情況,linken被巧合訪問到:
引入機制 命名空間可以聲明為多級空間,這個多級空間元素在其他空間內部訪問的時候,不得已需要通過 完全限定名稱 方式,這個完全限定名稱不方便開發、維護,為了降低代碼的復雜度,可以在當前的空間把指定的空間給引入進來,進而可以方便地通過“限定名稱”的方便的形式使用其他空間的元素。 空間引入 use 空間;
新聞熱點
疑難解答