Ich erstelle meinen eigenen Container, habe ich "bind" -Methode, die "String $ Alias" und "Closure $ Closure" bekommen. Das Verfahren bindet das Alias für das Objekt auf dem $ Behälter Array, wie folgt aus:was zu meinem container ioc hinzufügen? php
public function bind(string $alias,$closure)
{
$this->container[$alias] = $closure();
}
Die zweite Methode „Anruf“ ist, das bis zu einem gewissen weise aus dem Behälter einfach $ nennen. Natürlich überprüft zuerst die Methode, ob der gegebene Alias existiert, und wenn keine Ausnahme ausgelöst wird.
ist das gut? Was muss ich noch hinzufügen? Weil ich zum Beispiel auf Laravel gesehen habe, dass der Container voller Methoden und Requisiten ist, und ich weiß nicht warum. es ist nur bind und rufen, nicht?
Ich würde persönlich die Schließung speichern und es auf Nachfrage anstatt auf binden nennen. Auf der einen Seite benötigen Sie möglicherweise nicht alle gebundenen Objekte während eines einzelnen Aufrufs, so dass Sie bei der Ressourcenzuteilung sparen, auf der anderen Seite kann der Zustand des gebundenen Objekts davon abhängen, wann es aufgerufen wird und nicht, wann es gebunden ist. – apokryfos
Warum muss ich den Verschluss speichern? was kann ich damit machen? – user412499