tp框架中的根命名空間

2021-08-16 19:15:47 字數 1733 閱讀 5772

根命名空間是乙個關鍵的概念,例如\think\cache\driver\file類為例,think就是乙個根命名空間,其對應的初始命名空間目錄就是系統的類庫目錄(thinkphp/library/think),我們可以簡單的理解乙個根命名空間對應了乙個類庫包

分析:

// 載入loader類

require

__dir__ . '/library/think/loader.php';

// 註冊自動載入

loader::register();

// 註冊自動載入機制

public

static

function

register

($autoload = '')

} else

}// 新增psr4空間

private

static

function

addpsr4

($prefix, $paths, $prepend = false)

else

} elseif (!isset(self::$prefixdirspsr4[$prefix]))

self::$prefixlengthspsr4[$prefix[0]][$prefix] = $length;

self::$prefixdirspsr4[$prefix] = (array) $paths;

} elseif ($prepend) else

}

分析:

// 註冊自動載入機制

public

static

function

register

($autoload = '')

// $file = '/thinkphp/library/think/cache/driver/file.php'

if ($file = self::findfile($class))

//將絕對路徑為"/thinkphp/library/think/cache/driver/file.php"的檔案載入進來

__include_file($file);

return

true;}}

......

/*** 查詢檔案

*@access private

*@param string $class

*@return string|false

*///這時傳入$class = 'think\cache\driver\file'

private

static

function

findfile

($class)}}

}}

// 查詢 psr-4 fallback dirs

foreach (self::$fallbackdirspsr4

as$dir) }}

.../**

* 作用範圍隔離

**@param $file

*@return mixed

*/function

__include_file

($file)

TP框架中命名空間

3.2版本全面採用命名空間方式定義和載入類庫檔案,有效的解決多個模組之間的衝突問題,並且實現了更加高效的類庫自動載入機制。命名空間的概念必須了解,否則會成為3.2版本開發的重大障礙。如果不清楚什麼是命名空間,可以參考php手冊 php命名空間 由於新版完全採用了命名空間的特性,因此只需要給類庫正確定...

tp框架中的命名空間

首先是我對命名空間的理解,命名空間相當於乙個空間,拿班級做比方,不同的班級就是不同的空間,每個班級都有叫小明的同學,但是不會因為有兩個小明而產生矛盾。這就是命名空間的作用 同乙個請求裡面,相同函式,類名,常亮不能出現多次 function chat echo demo changliang 訪問元素...

TP 空間命名

命名空間 thinkphp5 採用命名空間方式定義和自動載入類庫檔案,有效的解決了多模組和 composer 類庫之間的命名空間衝突問題,並且實現了更加高效的類庫自動載入機制。特別注意的是,如果你需要呼叫php內建的類庫,或者第三方沒有使用命名空間的類庫,在這裡插入 片 特別注意的是,如果你需要呼叫...