ホームページ > バックエンド開発 > PHPチュートリアル > thinkphp 名​​前空間の使用例の詳細な説明

thinkphp 名​​前空間の使用例の詳細な説明

WBOY
リリース: 2016-07-29 09:08:23
オリジナル
991 人が閲覧しました

この記事の例では、thinkphp 名​​前空間の使用法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

新しいバージョン (3.2) は、名前空間を使用してクラス ライブラリ ファイルを定義およびロードし、複数のモジュール間の競合を解決し、より効率的な自動ロード メカニズムを実装します。

クラスが自動的にロードされるように、クラス ライブラリが配置される名前空間を定義する必要があります。たとえば、OrgUtilFile クラスは

として定義されます。

namespace Org\Util;
class File {
}

ログイン後にコピー

それが配置されているパスは ThinkPHP/Library/Org/Util/File.class.php です。このクラスを次のようにインスタンス化します:

コードをコピーします コードは次のとおりです:

$ class = new OrgUtilFile();


システムは上記のファイルを自動的にロードします。これにより、名前空間で定義されたクラスをインスタンス化する前にクラス ライブラリ ファイルをインポートする必要がなくなります。

ルート名前空間は非常に重要な概念です。例として上記の OrgUtilFile クラスを取り上げます。Org はルート名前空間であり、それに対応する初期名前空間ディレクトリはシステムのクラス ライブラリ ディレクトリである ThinkPHP/Liberary であり、これは次のレベルのサブディレクトリです。ディレクトリはルート名前空間として自動的に認識され、これらの名前空間は登録なしで使用できます。

Library ディレクトリの下に新しい My root 名前空間ディレクトリを追加し、次のように Test クラスを定義します:

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

ログイン後にコピー

テスト クラスを 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.php

namespace Admin\Event;
class UserEvent {
}

ログイン後にコピー
にあります。

そのクラス ファイルは Application/Admin/Event/UserEvent.class.php にあります

3.2.1 以降では、アプリケーション クラス ライブラリに名前空間を使用しない設定が可能です。 設定ファイルの設定は次のとおりです。

コードをコピーしますコードは次のとおりです:

'APP_USE_NAMESPACE' => false,


これにより、アプリケーション クラス ライブラリは名前空間定義を使用する必要がなくなりますが、継承および呼び出しの際には引き続き名前空間を使用する必要があります。たとえば、次のアプリケーション クラス ライブラリは、名前空間 AdminModel;

class UserModel extends \Think\Model {
}

ログイン後にコピー

を書きません。特別な注意: PHP の組み込みクラス ライブラリ、または を使用して定義されていないサードパーティ クラスをインスタンス化する必要がある場合。バージョン 3.2 の名前空間を使用するには、次のメソッドを使用する必要があります:

$class =  new \stdClass();
$sxml =  new \SimpleXmlElement($xmlstr);

ログイン後にコピー

この記事で説明した内容が、thinkPHP フレームワークに基づいた PHP プログラミングの皆様のお役に立てれば幸いです。

以上、thinkphp の名前空間の使用例を内容も含めて詳しく紹介しましたので、PHP チュートリアルに興味のある方の参考になれば幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート