當開發大型項目的時候,能夠會須要成千上萬的文件php
面向對象經過命名空間來解決這個問題的。函數
PHP命名空間是PHP5.3之後纔出現的。ui
命名空間中能夠出現:類,函數,常量spa
只有const定義的常量命名空間纔有效。命名空間的名字必須符合PHP命名的規則。設計
命名空間是邏輯上的定義,邏輯的名稱 不是物理上的路徑3d
Tp中爲了尋址的方便把命名空間作成地址對象
空間元素訪問的三種形式blog
1、非限定名稱訪問開發
echo getInfo()get
相似於:require ('getinfo.php');
2、限定名稱訪問,是相對限定
China\getInfo();
相似於:requrie ('China/getInfo.php');
3、徹底限定訪問
\China\getInfo();
相似於 requre ('c:\China\getinfo.php');
1、最頂層的\表示的是公共空間
2、namespace必須在最上面。
3、命名是虛擬的空間,不是真實存在的目錄,可是ThinkPHP的命名空間是真實的地址路徑。
4、當前文件中include具備命名空間的文件,不會改變當前文件的命名空間。
5、use有兩個做用 引入命名空間 引入類
RBAC: role base access controller (基於角色的訪問控制功能)
權限控制器第一個階段:
該權限控制器是用戶與具體操做模塊直接聯繫。
該方式權限設置好處:實現相對比較容易、用戶的權限很是清晰。
很差:權限設置「太具體」,管理員須要天天花大量的時間給「新增用戶」設置權限,給「離職用戶」取消權限。有時還須要給個別人員設置差別權限。
權限設置第二個階段:
權限能夠與組別直接對應
管理員-------->組---------->權限
基於組(角色)的權限設置,使得用戶與組別直接聯繫、組別與權限直接對應
組別對應的具體的權限已經固化的信息
用戶與組別的對應關係是動態的,須要管理員維護
該方式權限設置很是高效,管理員後期只須要知道用戶是屬於哪一個組別的就能夠。