ホームページ >PHPフレームワーク >ThinkPHP >ThinkPHPコンテナの予備分析

ThinkPHPコンテナの予備分析

咔咔
咔咔オリジナル
2020-10-12 12:46:282116ブラウズ

この記事は、コンテナ クラスのソース コードを解析する前の簡単な内容です。全体的な内容を詳しく調べた後、分析する前に頭の中に印象を残すことができます。

##7. コンテナ コンテナ クラスの予備分析

前回の記事では、作成したコンテナを実装しました。次に、ソースコード内のコンテナを見てみましょう。前回の記事でコンテナについて登場した技術的なポイントはすべて説明されました。

次にコンテナのソース コードを読むのはそれほど難しいことではありません。前回の記事をまだ読んでいない場合は、必ずもう一度読んでください。

誰もがファイル

public/index.php

を何度も開いたことがあると思います。
何度このファイルを開いてソースコードを知りたかったのですが、見ただけで諦めました。

前の登録ツリー モードを通過すると、このコード行が何を返すかを確実に理解できるようになります。

Container::get('app')

このコード行はアプリのインスタンスを返し、簡単なブレークポイントを作成できます。

アプリ クラスの多くの属性が返されることがわかります。 ######したがって、登録ツリー モードでは、以前に書かれたものを繰り返し読んだりすることはできません。そうしないと、読めば読むほど混乱してしまいます。 ###

これまでの技術的なポイントは、すべて次への道を開くためのものです。これまでの記事を読まないと、次の内容は読めません。専門家は話しません!

それでは、フレームワーク内のコンテナはどのように定義されているのでしょうか?それはどのように達成されるのでしょうか?

つまり、この get() メソッドの動作に注意するだけで済みます。

コードは、ファイル thinkphp/library/think/Container.php# 内の get()method## までトレースされます。

ここの

getInstance() メソッドはおなじみですよね。これが上記のシングルトン パターンです。つまり、プログラムの宣言サイクル中に返されるオブジェクトのインスタンスは 1 つだけです。

コード トレースが可能です

getInstance()このメソッドは、同じファイル内にこのシングルトン モード メソッドがあり、コンテナ インスタンスを返します。

次に、コンテナ内の make メソッドを詳細に分析します。

学習の継続、ブログの継続、共有の継続は、カカがそのキャリア以来常に支持してきた信念です。巨大なインターネット上のカカの記事がそうであることを願っています」 Silk のお手伝いをします。私の名前はカカです。また次回お会いしましょう。

以上がThinkPHPコンテナの予備分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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