Ich habe noch kein gutes Verständnis von Laravel-Containern.
Nach meinem Verständnis gibt es viele Objekte, die im Container aufgerufen werden können.
Sie können es bei Bedarf direkt verwenden, ohne neues etc.
Ich möchte fragen: Wird jeder diese Funktion nutzen?
Wie nutzen Sie diese Funktion im Allgemeinen in Projekten? Sollten wir eine Serviceschicht abtrennen und jeden Service in einen Container packen?
Controller anrufen?
Oder nutzen Sie es einfach nicht?
Ich habe noch kein gutes Verständnis von Laravel-Containern.
Nach meinem Verständnis gibt es viele Objekte, die im Container aufgerufen werden können.
Sie können es bei Bedarf direkt verwenden, ohne neues etc.
Ich möchte fragen: Wird jeder diese Funktion nutzen?
Wie nutzen Sie diese Funktion im Allgemeinen in Projekten? Sollten wir eine Serviceschicht abtrennen und jeden Service in einen Container packen?
Controller anrufen?
Oder nutzen Sie es einfach nicht?
Der Laravel-Container ist ein Ort, an dem Dienste platziert werden, die nacheinander an den Container gebunden sind. Es gibt drei Hauptbindungsmethoden: bind(), singleton() und Instanz() Servicemethode aus dem Container: make(), diese befinden sich alle in IlluminateContainerContainer und IlluminateFoundationApplication erweitert den Container.
Was die Funktionsweise von Container betrifft: Wenn Sie Konstruktorinjektion oder Methodeninjektion im Controller verwenden, verwenden Sie bereits Container, da Container diese Dienste automatisch für Sie analysiert, wie zum Beispiel:
<code>class AccountController extends Controller { // 这里是Method Injection,Container会自动解析出Request,而不需要去new Request获得对象 // 从容器中解析服务是用的Container::make()方法 public function test(Request $request) { return $request->ip(); } }</code>
Container-Dienste wurden also im Allgemeinen verwendet. Traditionell werden die erforderlichen Dienste innerhalb der abhängigen Objekte erstellt, aber jetzt werden die erforderlichen Abhängigkeiten innerhalb des Containers erstellt automatisiert und automatisch in die abhängigen Objekte eingefügt, wodurch eine Entkopplung erreicht wird.
Für die Quellcode-Analyse von Containern und Anwendungen können Sie sich Folgendes ansehen:
Laravel Study Notes Container-Quellcode-Analyse
Laravel Study Notes IoC Container Instantiation Source Code Analysis