yii2 を学ぶ前に、「依存性注入」という用語をすでに知っていて理解しようとしましたが、それは常に雲の上にあり、実際に使用する機会がなかったので、よく理解していませんでした。今回初めて yii2 を学習しますが、このいわゆる「高度な」問題が解けるようになります。 ! !笑
「依存性注入」を始める前に、まずデザインパターンについて話しましょう。この側面から始めるとより早く理解できると思います。
私たちが最初にプログラミングを学んだとき、例えば、ある機能を実装するために、上から下へ文ごとに実装するのがせいぜいいくつかの共通の関数として分類されていました。 .パッケージ(関数)。次に「オブジェクト指向」について学び、その後は「オブジェクト」の概念を応用してより良いプログラム(さまざまなデザインパターン)を設計する方法について学びましたが、「依存性注入」もデザインパターンの実装です。その実装により、関数を実装する際の「前後の依存関係」または「コンテキストの依存関係」に関する懸念が解決されます。この文はわかりにくいと思うので、簡単に説明しましょう。
「前後依存」を理解する方法
たとえば、BMW とポルシェをそれぞれ作りたいとします。BMW を製造するときは、次の順序を厳密に守らなければなりません (1 と 2 は遵守しません)。固定の順序にする必要があります):
1. BMW 工場を検索します (必須または含めます)
2. BMW を製造する前に準備を整えます (パラメータがオブジェクトの場合は、オブジェクトのパラメータを初期化することもできます)。いくつかのパラメータを準備する必要があります...)
3. 1 と 2 が完全に準備された後にのみ、「BMW」(new BaoMa($params1,$params2....)) を生成できます。つまり、1 と 2 は必ず生成されます。 3より前であること。
「ポルシェ」を作るには、もちろん、他の車を製造するときにも同じプロセスを踏む必要があります。これが「表裏依存」の問題です。クルマを実現するプロセスを個別に整理し、普遍化する方法はないだろうか。つまり、最初に実装プロセスを準備し、次に「原材料」を提供します。何を実装するかは、提供する「原材料」(依存関係の注入) によって決まります。
上記は yii2 のエッセイです (7) 依存性注入 - (1) 依存性注入の内容について詳しくは、PHP 中国語 Web サイト (www.php.cn) をご覧ください。