ThinkPHP3 2 命名空間隨記

2021-07-24 05:43:46 字數 1262 閱讀 8330

3.2版本全面採用命名空間方式定義和載入類庫檔案,有效的解決多個模組之間的衝突問題,並且實現了更加高效的類庫自動載入機制。

命名空間的概念必須了解,否則會成為3.2版本開發的重大障礙。

由於新版完全採用了命名空間的特性,因此只需要給類庫正確定義所在的命名空間,而命名空間的路徑與類庫檔案的目錄一致,那麼就可以實現類的自動載入。 例如,org\util\file類的定義為:

namespace org\util;

class file

其所在的路徑是thinkphp/library/org/util/file.class.php,因此,如果我們例項化該類的話:

$class = new \org\util\file();
系統會自動載入thinkphp/library/org/util/file.class.php檔案。

注意:和3.1不同,我們無需在例項化命名空間定義的類之前匯入類庫檔案了。

根命名空間

根命名空間是乙個關鍵的概念,以上面的org\util\file類為例,org就是乙個根命名空間,其對應的初始命名空間目錄就是系統的類庫目錄(thinkphp/library),library目錄下面的子目錄會自動識別為根命名空間,這些命名空間無需註冊即可使用。

模組中的類庫命名空間的根都是以模組名命名,例如:

namespace home\model;

class usermodel extends \think\model

3.2.1版本以上的話,允許設定對應用類庫不使用命名空間,你在配置檔案中進行如下設定:

那麼,所有的應用類庫不再需要使用命名空間定義,但繼承和呼叫核心類和系統類的時候,仍然需要使用命名空間,例如:

class usermodel extends \think\model

特別注意:如果你需要在3.2版本中例項化php內建的類庫或者第三方的沒有使用命名空間定義的類,需要採用下面的方式:

$class =    new \stdclass();

$sxml = new \******xmlelement($xmlstr);

THINKPHP3 2命名空間

thinkphp3.2命名空間 3.2版本全面採用命名空間方式定義和載入類庫檔案,有效的解決多個模組之間的衝突問題,並且實現了更加高效的類庫自動載入機制。由於新版完全採用了命名空間的特性,因此只需要給類庫正確定義所在的命名空間,而命名空間的路徑與類庫檔案的目錄一致,那麼就可以實現類的自動載入。例如,...

ThinkPHP3 2 驗證隨記

自動完成 靜態方式 在模型類裡面通過 auto屬性定義處理規則。動態方式 使用模型類的auto方法動態建立自動處理規則。自動驗證 靜態方式 在模型類裡面通過 validate屬性定義驗證規則。動態方式 使用模型類的validate方法動態建立自動驗證規則。定義格式為 array array 驗證欄位...

ThinkPHP3 2 搭載環境

thinkphp是乙個快速 簡單的基於mvc和物件導向的輕量級php開發框架 預設情況下當你執行index.php時只有home模組,如果你需要建立其他模組時需要在入口檔案 index.php 中定義 define bind module admin 繫結入口到admin模組訪問 bind modu...