Dieser Artikel vermittelt Ihnen relevantes Wissen über PHP und stellt hauptsächlich Fragen im Zusammenhang mit der Abhängigkeitsinjektion vor, einschließlich der Frage, was eine Abhängigkeitsinjektion ist, die Gründe für die Abhängigkeitsinjektion und die Anwendung der Abhängigkeitsinjektion usw. Ich hoffe, dass er für alle nützlich sein wird . helfen.
Empfohlene Studie: „PHP-Video-Tutorial“
Verstehen Sie PHP Dependency Injection, nachdem Sie eine Weile PHP gelernt haben, aber sie haben nur wenig davon In meinem Fall verstehen Sie, dass die Abhängigkeitsinjektion tatsächlich ein PHP-Programmierentwurfsmuster ist. Obwohl es nicht als Entwurfsmuster klassifiziert ist, besteht die Existenz von Entwurfsmustern für die Effizienz der Programmierung und natürlich der Abhängigkeitsinjektion.
1. Was ist Dependency Injection (DI)
- Dependency Injection (DI) bezieht sich eigentlich auf die automatische Injektion von Abhängigkeiten in eine Klasse durch den Konstruktor
- Laienhaft ausgedrückt bedeutet dies, dass Sie gerade eine Klasse betreiben , aber Einige Methoden oder Funktionen dieser Klasse können nicht von dieser Klasse allein abgeschlossen werden, sondern müssen mit Hilfe einer anderen Klasse abgeschlossen werden. Das direkteste Zeichen ist, wenn die Parameterdaten als Objekt übergeben werden. Genau genommen besteht eine gegenseitige Abhängigkeit zwischen den beiden Klassen. Der Grund für die Entstehung der Abhängigkeitsinjektion ist Wenn ich eine andere Klasse in einer Klasse verwende, funktioniert sie wie folgt
- Wenn ich beispielsweise die Adapterklasse in der Containerklasse verwenden muss, muss sie vor der Verwendung instanziiert werdenWenn sie verwendet werden muss Eine große Anzahl externer Klassen führen dazu, dass der Kopplungsgrad zu hoch ist, was leicht zu späteren Wartungsschwierigkeiten führen kann. Der Container kann ohne externe Klassen nicht funktionieren. Dies wird als zu hoher Kopplungsgrad bezeichnet. Einfache Abhängigkeitsinjektion
Der obige Code ist zu stark gekoppelt, was zur Entstehung einer Abhängigkeitsinjektion führt, hauptsächlich zum Verständnis der Kopplung
Wie unten gezeigt, müssen wir nur das Klassenobjekt übergeben, das bedient werden muss.
Um das oben genannte Problem der Parameterverwirrung zu lösen, hat sich zu diesem Zeitpunkt die Abhängigkeitsinjektion entwickelt
Durch die magische Methode __get Sets Das Objekt
Definieren wir zunächst eine Containerklasse, die hauptsächlich zum Einfügen der Klassen, die Sie betreiben möchten, in den Container verwendet wird Das Containerobjekt. 6. Optimierung auf hoher Ebene
- ist oben In der Anwendung injizieren wir die instanziierten Objekte direkt in den Container
- Dadurch werden alle Objekte erneut instanziiert, bevor sie verwendet werden, was zu Ressourcenverlust führt
- Wir können den Abschluss übergeben, damit das Objekt nicht durch Instanziierung injiziert wird. Wenn Sie es verwenden müssen, können Sie es erneut instanziieren
- , um den Verlust von Serverressourcen zu reduzieren
<?php
class container
{
public $instance = [];
public function __set($name, $value)
{
$this->instance[$name] = $value;
}
}
$container = new container();
$container->adapter = new adapter();
Empfohlenes Lernen: „PHP Video-Tutorial"
Das obige ist der detaillierte Inhalt vonGemeinsame Nutzung der Zusammenfassung der PHP-Abhängigkeitsinjektion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!