この記事では、thinkphp 名前空間の使用方法を例とともに説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
新しいバージョン (3.2) は、名前空間を使用してクラス ライブラリ ファイルを定義およびロードし、複数のモジュール間の競合を解決し、より効率的な自動ロード メカニズムを実装します。クラスが自動的にロードされるように、クラス ライブラリが配置される名前空間を定義する必要があります。たとえば、OrgUtilFile クラスは
として定義されます。 リーリー
このクラスが配置されているパスは ThinkPHP/Library/Org/Util/File.class.php です。このクラスを次のようにインスタンス化します。
コードをコピーします コードは次のとおりです: $class = new OrgUtilFile();
システムは上記のファイルを自動的にロードするため、名前空間で定義されたクラスをインスタンス化する前にクラス ライブラリ ファイルをインポートする必要はありません。
ルート名前空間は非常に重要な概念です。例として上記の OrgUtilFile クラスを取り上げます。Org はルート名前空間であり、それに対応する初期名前空間ディレクトリはシステムのクラス ライブラリ ディレクトリ ThinkPHP/Liberary であり、このディレクトリの下のサブディレクトリは次のように自動的に認識されます。ルート名前空間、これらの名前空間は登録なしで使用できます。
Library ディレクトリの下に My root 名前空間ディレクトリを追加し、次のように Test クラスを定義します。 リーリー
テストクラスを ThinkPHP/Liberary/My/Test.class.php に保存すると、インスタンス化して直接呼び出すことができますリーリー
モジュール内のクラス ライブラリの名前空間は、モジュール名に基づいて名前が付けられます。例:リーリー
クラスファイルはApplication/Home/Model/UserModel.class.phpにありますリーリー
クラスファイルはApplication/Admin/Event/UserEvent.class.phpにありますバージョン 3.2.1 以降では、アプリケーション ライブラリに名前空間を使用しない設定が可能です。設定ファイルの設定は次のとおりです。 コードをコピーします
コードは次のとおりです: 'APP_USE_NAMESPACE' => false,
このようにして、アプリケーション クラス ライブラリは名前空間定義を使用する必要がなくなりましたが、コア クラス ライブラリを継承して呼び出すときは引き続き名前空間を使用する必要があります。たとえば、次のアプリケーション クラス ライブラリは名前空間 AdminModel; を記述しなくなります。
リーリー
特記事項: PHP の組み込みクラス ライブラリ、またはバージョン 3.2 の名前空間を使用して定義されていないサードパーティ クラスをインスタンス化する必要がある場合は、次のメソッドを使用する必要があります:
リーリー
この記事が、thinkPHP フレームワークに基づく皆様の PHP プログラミングに役立つことを願っています。
興味があるかもしれない記事: thinkphp autoload 名前空間 カスタム名前空間 PHP の名前空間の詳細な紹介
www.bkjia.com