Heim >Backend-Entwicklung >PHP-Tutorial >Service-Container-Bootstrap: Erste Schritte
Bevor Sie mit dem Thema beginnen, erstellen Sie zwei neue Dateien im Controller-Verzeichnis:
Ein Service-Container ist ein Entwurfsmuster, das die Verwaltung von Abhängigkeiten zwischen Objekten zentralisiert und eine strukturierte Möglichkeit bietet, auf Dienste innerhalb einer Anwendung zuzugreifen und diese zu verwalten.
Es fungiert als Registrierung für Dienste innerhalb einer Website.
Erstellen Sie zunächst eine Datei mit dem Namen Controller.php im Core-Verzeichnis. Initialisieren Sie dabei die Container-Klasse, die für die Verwaltung von Dienstbindungen und -auflösungen verantwortlich ist.
class Container { protected $bindings = []; public function bind($key, $resolver) { $this->bindings[$key] = $resolver; } public function resolve($key) { if (!array_key_exists($key, $this->bindings)) { throw new Exception("No matching binding found for {$key}"); } $resolver = $this->bindings[$key]; return call_user_func($resolver); } }
Die App-Klasse fungiert als Schnittstelle für den Container und bietet eine praktische Schnittstelle für den Zugriff auf Dienste.
class App { protected static $container; public static function setContainer($container) { static::$container = $container; } public static function container() { return static::$container; } public static function bind($key, $resolver) { static::container()->bind($key, $resolver); } public static function resolve($key) { return static::container()->resolve($key); } }
Bootstrap ist ein Punkt einer Anwendung, an dem alles eingerichtet und initialisiert wird.
$container = new Container(); $container->bind('Core\Database', function () { $config = require base_path('config.php'); return new Database($config['database']); }); App::setContainer($container);
Hier der Bootstrap-Prozess:
Dienste können mithilfe der App::resolve()-Methode aus dem Container in Controllern aufgelöst werden.
$db = App::resolve('Core\Database');
Jetzt ist ein Service-Container ordnungsgemäß erstellt und Sie können sehen, dass das Projekt gut funktioniert.
Ich hoffe, dass Sie es klar verstanden haben.
Das obige ist der detaillierte Inhalt vonService-Container-Bootstrap: Erste Schritte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!