ホームページ バックエンド開発 PHPチュートリアル thinkPHP5.0フレームワークの自動読み込みメカニズムの詳細な分析

thinkPHP5.0フレームワークの自動読み込みメカニズムの詳細な分析

Mar 20, 2017 am 09:13 AM

この記事では、主に thinkPHP5.0 フレームワーク自動読み込みのメカニズムを紹介し、thinkPHP5.0 自動読み込みの概念、原理、使用法および関連する側面をより詳細に分析しますメモ。記事

thinkPHP5.0 フレームワークの自動読み込みメカニズムについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

概要

ThinkPHP5.0は真にオンデマンドロードを実現し、すべてのクラスライブラリは自動ロードメカニズムを採用し、クラスライブラリマッピングの自動ロードをサポートします。そしてコンポーザークラスライブラリ。

自動ローディングの実装は thinkLoader クラス ライブラリによって完了し、自動ローディングの仕様は PHP の PSR-4 に準拠しています。

自動読み込み

ThinkPHP の新しいバージョンは名前空間 機能を完全に採用しているため、必要なのはクラス ライブラリが配置されている名前空間を正しく定義することだけであり、名前空間のパスはクラス ライブラリのディレクトリと一致しています。クラス ライブラリ ファイルを作成すると、クラスの自動読み込みを実装できます。

クラス ライブラリの自動ロード検出の順序は次のとおりです:

1. クラス ライブラリ マッピングの検出
3. PSR-0 の自動ロード検出;検出されたら、有効になると、対応するクラス ライブラリ ファイルが自動的にロードされます。

クラスライブラリマッピング

上記の名前空間定義仕様に従えば、基本的にはクラスライブラリの自動読み込みを完了できますが、より多くの名前空間を定義すると効率が低下するため、クラスライブラリマッピングを定義することができます。一般的に使用されるクラス ライブラリ用。名前付きクラス ライブラリのマッピングは、クラス ファイルのエイリアスを定義することと同等であり、名前空間の配置よりも効率的です。例:

Loader::addClassMap('think\Log',LIB_PATH.'think\Log.php');
Loader::addClassMap('org\util\Array',LIB_PATH.'org\util\Array.php');
ログイン後にコピー

また、addClassMap メソッドを使用してクラス ライブラリ マッピング定義をバッチでインポートすることもできます。例:

$map = [
  'think\Log'   => LIB_PATH.'think\Log.php',
  'org\util\array'=> LIB_PATH.'org\util\Array.php'
];
Loader::addClassMap($map);
ログイン後にコピー

クラス ライブラリ マッピングを通じて、この方法で登録されたクラスは名前空間ディレクトリに対応する必要はありませんが、それでも PSR-4 仕様に従ってクラス ライブラリとディレクトリを定義することをお勧めします。

クラス ライブラリのインポート

システムの自動ロード機能が必要ない場合、または名前空間を使用しない場合は、thinkLoader クラスのインポート メソッドを使用してクラス ライブラリ ファイルを手動でロードすることもできます。 :

Loader::import('org.util.array');
Loader::import('@.util.upload');
ログイン後にコピー

Example

// 引入 extends/qrcode.php
Loader::import('qrcode', EXTEND_PATH);
// 助手函数
import('qrcode', EXTEND_PATH);
// 引入 extends/wechat-sdk/wechat.class.php
Loader::import('wechat-sdk.wechat', EXTEND_PATH, '.class.php');
// 助手函数
import('wechat-sdk.wechat', EXTEND_PATH, '.class.php');
ログイン後にコピー

クラス ライブラリのインポートでも同様の名前空間の概念が使用されます (ただし、実際の名前空間のサポートは必要ありません)。サポートされている「ルート名前空間」は次のとおりです。
目次 説明
動作 システム動作クラスライブラリ
think コア基本クラスライブラリ
特性 システム特性クラスライブラリ
app アプリケーションクラスライブラリ
@ は、現在のモジュールクラスライブラリパッケージを表します


システムの名前空間定義に完全に準拠している場合、一般的に、クラス ライブラリ ファイルを手動でロードして直接インスタンス化する必要はありません。

Composer の自動ロード

バージョン 5.0 は、Composer によってインストールされたクラス ライブラリの自動ロードをサポートしており、Composer 依存ライブラリの名前空間に従ってそれらを直接呼び出すことができます。

以上がthinkPHP5.0フレームワークの自動読み込みメカニズムの詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Golang 変数の保存場所とメカニズムの詳細な調査 Golang 変数の保存場所とメカニズムの詳細な調査 Feb 28, 2024 pm 09:45 PM

タイトル: Golang 変数の保存場所とメカニズムの詳細な調査 Go 言語 (Golang) の応用がクラウド コンピューティング、ビッグ データ、人工知能の分野で徐々に増加するにつれて、特に重要です。 Golang 変数の保存場所とメカニズムを深く理解します。この記事では、Golang における変数のメモリ割り当て、保存場所、および関連するメカニズムについて詳しく説明します。具体的なコード例を通じて、Golang 変数がメモリ内でどのように保存および管理されるかを読者がより深く理解できるようにします。 1.Golang変数の記憶

CSS レイアウトの再計算とレンダリングの仕組みを深く理解する CSS レイアウトの再計算とレンダリングの仕組みを深く理解する Jan 26, 2024 am 09:11 AM

CSS のリフローと再描画は、Web ページのパフォーマンスの最適化において非常に重要な概念です。 Web ページを開発する場合、これら 2 つの概念がどのように機能するかを理解すると、Web ページの応答速度とユーザー エクスペリエンスを向上させることができます。この記事では、CSS のリフローと再描画の仕組みを詳しく説明し、具体的なコード例を示します。 1. CSS リフローとは何ですか? DOM 構造内の要素の表示、サイズ、位置が変更されると、ブラウザは CSS スタイルを再計算して適用し、再レイアウトする必要があります。

PHPのオートローディング機構 PHPのオートローディング機構 Jun 18, 2023 pm 01:11 PM

PHP 言語の人気が高まるにつれて、開発者はより多くのクラスや関数を使用する必要があります。プロジェクトのサイズが大きくなると、すべての依存関係を手動で導入するのは現実的ではなくなります。現時点では、コードの開発とメンテナンスのプロセスを簡素化するために、自動読み込みメカニズムが必要です。自動ロード メカニズムは、実行時に必要なクラスとインターフェイスを自動的にロードし、手動によるクラス ファイルの導入を減らすことができる PHP 言語の機能です。このようにして、プログラマーはコードの開発に集中でき、面倒な手動のクラス導入によって引き起こされるエラーや時間の無駄を減らすことができます。 PHPでは一般的に、

PHPにおける暗黙的な変換メカニズムの解析 PHPにおける暗黙的な変換メカニズムの解析 Mar 09, 2024 am 08:00 AM

PHP における暗黙的な変換メカニズムの分析 PHP プログラミングにおいて、暗黙的な変換とは、型変換を明示的に指定せずに、PHP が 1 つのデータ型を別のデータ型に自動的に変換するプロセスを指します。暗黙的な変換メカニズムはプログラミングでは非常に一般的ですが、予期せぬバグを引き起こしやすいため、暗黙的な変換メカニズムの原理とルールを理解することは、堅牢な PHP コードを作成するために非常に重要です。 1. 整数型と浮動小数点型の間の暗黙的な変換 PHP では、整数型と浮動小数点型の間の暗黙的な変換が非常に一般的です。整数の場合

Go でエラー処理メカニズムを使用するにはどうすればよいですか? Go でエラー処理メカニズムを使用するにはどうすればよいですか? May 11, 2023 pm 04:45 PM

Go 言語は、強く型付けされた効率的で最新のプログラミング言語として、最新のソフトウェア開発でますます広く使用されています。その中でも、エラー処理メカニズムは Go 言語の注目に値する側面であり、Go 言語のエラー処理メカニズムも他のプログラミング言語と比べて非常に異なっており、優れています。この記事では、読者が Go 言語のエラー処理メカニズムをよりよく理解し、使用できるように、Go 言語のエラー処理メカニズムの基本概念、実装方法、ベスト プラクティスを紹介します。 1. Go 言語のエラー処理メカニズムの基本概念

PHP オートローディング マスタークラス: コードローディングのエキスパートになる PHP オートローディング マスタークラス: コードローディングのエキスパートになる Mar 02, 2024 pm 09:43 PM

PHP オートローディングの概要 PHP オートローディングは、ファイルを手動で含めることなく、必要に応じて PHP がクラスを自動的にロードできるようにするメカニズムです。これにより、大規模なアプリケーションの開発が大幅に簡素化され、コードの保守性が向上します。 PHP のネームスペースとオートロードネームスペースは、コードを編成するために使用されます。名前空間を使用して宣言されたクラスをロードする必要がある場合、PHP は自動ロード プロセスを実行します。オートローダーは、名前空間とクラス名に基づいて、対応するクラス ファイルを検索してロードする役割を果たします。 Composer を使用した自動ロード Composer は、依存関係管理と自動ロードのための PHP コミュニティの標準ツールです。 Composer をインストールした後、次の手順を使用して自動ロードを構成できます。 //composer.JSO

Go言語のメモリ管理メカニズムとは何ですか? Go言語のメモリ管理メカニズムとは何ですか? Jun 10, 2023 pm 04:04 PM

Go 言語は、システムレベルのプログラミングに広く使用されている効率的なプログラミング言語であり、その主な利点の 1 つはメモリ管理メカニズムです。 Go 言語に組み込まれているガベージ コレクション メカニズム (GarbageCollection、GC と呼ばれる) により、プログラマが自らメモリ割り当てや解放操作を実行する必要がなくなり、開発効率とコード品質が向上します。この記事では、Go 言語のメモリ管理メカニズムについて詳しく説明します。 1. Go のメモリ割り当て Go 言語では、メモリ割り当てには 2 つのヒープ領域が使用されます。

HTTPステータスコード例外のメカニズムを明らかにする HTTPステータスコード例外のメカニズムを明らかにする Feb 19, 2024 pm 08:26 PM

HTTP ステータス コード例外のメカニズムを明らかにします。HTTP ステータス コードとは、クライアントとサーバー間の通信時にサーバーからクライアントに返される数値コードを指し、リクエストの処理ステータスを示すために使用されます。 HTTP プロトコルは一連のステータス コードを定義し、各ステータス コードには特定の意味があります。通常の状況では、サーバーはリクエストの処理結果に基づいて対応するステータス コードを返し、それによって現在の処理ステータスをクライアントに通知します。ただし、HTTP ステータス コードの例外が発生することがあります。つまり、サーバーが予期しないステータスを返します。

See all articles