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

thinkphp命名空間用法實例詳解

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原創
2016-07-29 09:08:231007瀏覽

本文實例講述了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