TP 5にサードパーティクラスライブラリextendを導入
1047 ワード
1.
define('EXTEND_PATH', __DIR__ .'/extend/');
実はtp 5は私たちに名前空間を使わずに第三者のクラスをロードする方法を与えてくれました!
クラスファイルをextendディレクトリの下に配置し、コントローラでクラスを使用する場合はimport()、関数でクラスファイルを手動で導入できます.導入方法の公式マニュアルに説明があります(アーキテクチャ->自動ロード->クラスライブラリインポート).
// extend/qrcode.php
Loader::import('qrcode', EXTEND_PATH);
//
import('qrcode', EXTEND_PATH);
// extend/wechat-sdk/wechat.class.php
Loader::import('wechat-sdk.wechat', EXTEND_PATH,'.class.php');
//
import('wechat-sdk.wechat', EXTEND_PATH,'.class.php');
クラスファイルを手動で導入した後、インスタンス化には特に注意が必要です.
newクラスファイル()の場合、クラスファイルの前に「」を追加する必要があります.すなわち、次のようにします.
$obj = new \Test();
''を付ける理由は、tp 5のネーミングスペース自動ロードルール:自動ロードの実装はthinkLoaderクラスライブラリで完了する
はい、自動ロード仕様はPHPのPSR-4に準拠しており、ルールの理解により、extendディレクトリの下で定義されていません.
ネーミングスペースのクラスファイルは、グローバル化されたクラスです.グローバル化されたクラスをインスタンス化する場合は、クラス名の前の表に""を置きます.
このようなクラスがグローバルクラスであることを示して、newの1つのグローバル化のクラスについて!