首頁 後端開發 php教程 thinkphp命名空間用法實例詳解

thinkphp命名空間用法實例詳解

Jul 29, 2016 am 09:08 AM
class namespace nbsp test thinkphp

本文實例講述了thinkphp命名空間用法。分享給大家供大家參考,具體如下:

新版本(3.2)中採用命名空間的方式定義和加載類庫文件,解決多個模組之間的衝突問題,並實現了更加高效的自動加載機制。

需要給類別庫定義所在的命名空間,命名空間的路徑和類別庫檔案的目錄一致,就可以實現類別的自動加載,例如OrgUtilFile類別的定義為

namespace Org\Util;
class File {
}

登入後複製

其所在的路徑是ThinkPHP/ Library/Org/Util/File.class.php,我們實例化該類別寫法如下:

複製代碼 程式碼如下:

$class = new OrgUtilFile();


$class = new OrgUtilFile();

系統會自動載入上述文件,這樣就不需要在實例化命名空間定義的類別之前導入類別庫檔案了。

根命名空間是一個很關鍵的概念,以上面的OrgUtilFile類別為例,Org就是一個根命名空間,其對應的初始命名空間目錄就是系統的類別庫目錄ThinkPHP/Liberary,該目錄下一級子目錄會自動辨識為根命名空間,這些命名空間無需註冊就可使用。

我們在Library目錄下面新增一個My根命名空間目錄,然後定義一個Test類別如下:

namespace My;
class Test
{
   public function sayHello()
  {
    echo 'hello';
  }
}

登入後複製

將test類別保存在ThinkPHP/Liberary/My/Test.class.php,我們就可以直接實例化與呼叫

$Test = new \My\Test();
$Test->sayHello();

登入後複製

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

namespace Home\Model;
class UserModel extends \Think\Model
{
}

登入後複製

其類別檔案位於Application/Home/Model/UserModel.class.phpore

檔案位於Application/Admin/Event/UserEvent.class.php

3.2.1版本以上允許設定對應用程式類別庫不使用命名空間,在設定檔中設定如下:

複製程式碼 程式碼如下:

複製程式碼
程式碼如下

'APP_USE_NAMESPACE'    =>    false,

這樣應用類別庫中不再需要使用命名空間的定義,但是繼承和調用核心類庫的時候還是需要使用命名空間,例如,下面的應用類庫中將不再寫namespace AdminModel;

namespace Admin\Event;
class UserEvent {
}

登入後複製

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

class UserModel extends \Think\Model {
}

登入後複製

希望本文所述對大家基於thinkPHP框架的PHP程式設計有所幫助。

🎜 以上就介紹了thinkphp命名空間用法實例詳解,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。 🎜 🎜 🎜
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

華為Watch GT 5智慧手錶獲得新功能更新 華為Watch GT 5智慧手錶獲得新功能更新 Oct 03, 2024 am 06:25 AM

華為Watch GT 5智慧手錶獲得新功能更新

鐵拳桑德斯上校的夢想被肯德基炸了 鐵拳桑德斯上校的夢想被肯德基炸了 Oct 02, 2024 am 06:07 AM

鐵拳桑德斯上校的夢想被肯德基炸了

三星 Galaxy Z Fold 特別版透露將於 10 月底登陸,但名稱出現衝突 三星 Galaxy Z Fold 特別版透露將於 10 月底登陸,但名稱出現衝突 Oct 01, 2024 am 06:21 AM

三星 Galaxy Z Fold 特別版透露將於 10 月底登陸,但名稱出現衝突

第一眼:即將推出的 Anker Zolo 4 連接埠 140W 帶顯示壁式充電器的拆箱視訊洩露 第一眼:即將推出的 Anker Zolo 4 連接埠 140W 帶顯示壁式充電器的拆箱視訊洩露 Oct 01, 2024 am 06:32 AM

第一眼:即將推出的 Anker Zolo 4 連接埠 140W 帶顯示壁式充電器的拆箱視訊洩露

搭載 HyperOS 的新款小米米家石墨烯油汀到貨 搭載 HyperOS 的新款小米米家石墨烯油汀到貨 Oct 02, 2024 pm 09:02 PM

搭載 HyperOS 的新款小米米家石墨烯油汀到貨

Cyber​​truck FSD 評論稱讚快速車道切換和全螢幕視覺化 Cyber​​truck FSD 評論稱讚快速車道切換和全螢幕視覺化 Oct 01, 2024 am 06:16 AM

Cyber​​truck FSD 評論稱讚快速車道切換和全螢幕視覺化

Garmin 透過新的更新發布了針對多款智慧手錶的冒險賽車活動改進 Garmin 透過新的更新發布了針對多款智慧手錶的冒險賽車活動改進 Oct 01, 2024 am 06:40 AM

Garmin 透過新的更新發布了針對多款智慧手錶的冒險賽車活動改進

Manjaro 24.1「Xahea」與 KDE Plasma 6.1.5、VirtualBox 7.1 等一起發布 Manjaro 24.1「Xahea」與 KDE Plasma 6.1.5、VirtualBox 7.1 等一起發布 Oct 02, 2024 am 06:06 AM

Manjaro 24.1「Xahea」與 KDE Plasma 6.1.5、VirtualBox 7.1 等一起發布

See all articles