命名空間
thinkphp5採用命名空間方式定義和自動載入類庫檔案,有效的解決了多模組和composer類庫之間的命名空間衝突問題,並且實現了更加高效的類庫自動載入機制。
特別注意的是,如果你需要呼叫php內建的類庫,或者第三方沒有使用命名空間的類庫,記得在例項化類庫的時候加上 \,例如:
// 錯誤的用法
$class = new stdclass();
$xml = new ******xmlelement($xmlstr);
// 正確的用法
$class = new \stdclass();
$xml = new \******xmlelement($xmlstr);
在thinkphp5.0中,只需要給類庫正確定義所在的命名空間,並且命名空間的路徑與類庫檔案的目錄一致,那麼就可以實現類的自動載入,從而實現真正的惰性載入。
例如,\think\cache\driver\file類的定義為:
namespace think\cache\driver;
class file
如果我們例項化該類的話,應該是:
$class = new \think\cache\driver\file();
系統會自動載入該類對應路徑的類檔案,其所在的路徑是 thinkphp/library/think/cache/driver/file.php。
5.0預設的目錄規範是小寫,類檔案命名是駝峰法,並且首字母大寫。
原則上,可以支援駝峰法命名的目錄,只要命名空間定義和目錄一致即可,例如:
我們例項化
$class = new \think\cache\driver\file();
系統則會自動載入 thinkphp/library/think/cache/driver/file.php檔案。
自動註冊
我們只需要把自己的類庫包目錄放入extend_path目錄(預設為extend,可配置),就可以自動註冊對應的命名空間,例如:
我們在extend目錄下面新增乙個my目錄,然後定義乙個\my\test類( 類檔案位於extend/my/test.php)如下:
namespace my;
class test
}
我們就可以直接例項化和呼叫:
$test = new \my\test();
$test->sayhello();
TP5命名空間理解與用法
一 什麼是命名空間?我理解是它是封裝的類庫或者方法,我們引入繼承它從而可以呼叫它其中的類,方法,變數.php文件解釋 什麼是命名空間?從廣義上來說,命名空間是一種封裝事物的方法。在很多地方都可以見到這種抽象概念。二 tp5中如何使用 use think model class user extend...
TP 空間命名
命名空間 thinkphp5 採用命名空間方式定義和自動載入類庫檔案,有效的解決了多模組和 composer 類庫之間的命名空間衝突問題,並且實現了更加高效的類庫自動載入機制。特別注意的是,如果你需要呼叫php內建的類庫,或者第三方沒有使用命名空間的類庫,在這裡插入 片 特別注意的是,如果你需要呼叫...
TP5常量參考
ext 類庫檔案字尾 php think version 框架版本號ds 當前系統的目錄分隔符 think path 框架系統目錄 root path 框架應用根目錄 lib path 系統類庫目錄 預設為 think path.library core path 系統核心類庫目錄 預設為 lib ...