由於新版完全採用了命名空間的特性,因此只需要給類庫正確定義所在的命名空間,而命名空間的路徑與
類庫檔案的目錄一致,那麼就可以實現類的自動載入。 例如, home\student\index 類的定義為:
namespace home\student;
class index
其所在的路徑是 thinkphp/library/home/student/index.class.php ,因此,如果我們例項化該類的話:
$class = new \home\student\index();
系統會自動載入 thinkphp/library/home/student/index.class.php 檔案
根命名空間是乙個關鍵的概念,以上面的 home\student\index 類為例, home 就是乙個根命名空間,其對應的初
始命名空間目錄就是系統的類庫目錄( thinkphp/library ),library目錄下面的子目錄會自動識別為根
命名空間,這些命名空間無需註冊即可使用。
例如,我們在library目錄下面新增乙個my根命名空間目錄,然後定義乙個test類如下:
namespace my;
class test
}test類儲存在 thinkphp/library/my/test.class.php ,我們就可以直接例項化和呼叫:
$test = new \my\test();
$test->sayhello();
模組中的類庫命名空間的根都是以模組名命名,例如:
namespace home\model;
class usermodel extends \think\model
namespace admin\event;
class userevent
特別注意:如果你需要在3.2版本中例項化php內建的類庫或者第三方的沒有使用命名空間定義的類,
需要採用下面的方式:
// 必須從根命名空間呼叫系統內建的類庫或者第三方沒有使用命名空間的類庫
$class = new \stdclass();
$sxml = new \******xmlelement($xmlstr);
thinkphp命名空間
thinkphp命名規範 thinkphp 作為開發框架,有自身的一套命名規範。在基於thinkphp的開發中,應該盡可能的遵照下面命名規範 1類檔名 thinkphp使用的類庫檔案都是以.class.php為字尾,使用駝峰命名,並且首字母大寫。外部載入的類庫檔案除外。2.配置檔名 以.php為字尾...
ThinkPHP命名空間
命名空間 是乙個虛擬的目錄 tp框架的初始命名空間是 thinkphp library 相當於乙個根 在tp框架下命名空間裡面使用 反斜槓 代表初始命名空間 根命名空間不代表初始命名空間 根命名空間是基於初始命名空間的 根命名空間在tp框架下有兩塊 1.library資料夾下所有的資料夾都是根命名空...
ThinkPHP裡的命名空間解析
由於php語法裡不支援函式過載機制,如果乙個應用裡有兩個同名的方法,怎麼辦呢?在yii 框架為了避免名字重複引起問題,全部的類前邊都有 c 字樣,而在thinkphp裡就引入了命名空間這個概念。a 命名空間是虛擬的定義空間,不是真實存在目錄 b 命名空間的分隔符都是反斜槓 c 非限定名稱 getna...