Laravel ist ein Framework, das einfach zu verwenden, aber nicht leicht zu verstehen ist. Warum nicht einfach? Weil es viele sogenannte „fortgeschrittene“ Konzepte enthält, darunter Dependency Injection (DI) und Ioc-Container zu den Kerninhalten. Dieser Artikel führt Sie hauptsächlich in die relevanten Informationen zum Hinzufügen benutzerdefinierter Klassen zum IoC-Container in Laravel 5.4 ein. Freunde in Not können darauf zurückgreifen. Ich hoffe, es hilft allen.
IoC-Container
Container bedeutet wörtlich etwas, das Dinge enthält. Gemeinsame Variablen, Objekteigenschaften usw. können als Container betrachtet werden. Was ein Container aufnehmen kann, hängt ganz davon ab, wie Sie den Container definieren. Natürlich gibt es einen solchen Container, der keine Texte oder Werte speichert, sondern Objekte, Objektbeschreibungen (Klassen, Schnittstellen) oder Rückrufe für Objekte bereitstellt. Über diesen Container können wir viele erweiterte Funktionen implementieren, von denen die wichtigste ist Oft wird von „Entkopplung“ und „Abhängigkeitsinjektion (DI)“ gesprochen.
IoC-Container – der Kern von Laravel
Der Kern von Laravel ist ein IoC-Container, der laut Dokumentation als „Service-Container“ bezeichnet wird. Dieser Container bietet eine Reihe von Diensten, die erforderlich sind. Als Anfänger werden viele Menschen Schwierigkeiten mit diesem Konzept haben. Daher möchte ich mit einigen grundlegenden Inhalten beginnen und nach und nach den Schleier der „Abhängigkeitsinjektion“ aufdecken, indem ich die Erzeugung und Lösung von Abhängigkeiten in der objektorientierten Entwicklung verstehe Designkonzept.
In diesem Artikel werden die relevanten Inhalte zum Hinzufügen benutzerdefinierter Klassen zum IoC-Container in Laravel 5.4 ausführlich vorgestellt und als Referenz und Studium weitergegeben. Ich werde im Folgenden nicht viel sagen ausführliche Einführung.
IoC-Container fügt benutzerdefinierte Klasse hinzu
1. Angenommen, wir möchten eine Transaktionsklasse erstellen, app/Trade/Sale.php
<?php namespace App\Trade; class Sale { public function exchange() { dd('交易成功啦!'); } }
2. Erstellen Sie einen Dienstleister TradeServiceProvider im Providers-Verzeichnis
php artisan make:provider TradeServiceProvider
3. Binden Sie dann unsere Klasse in die Registermethode von TradeServiceProvider.php
/** * Register the application services. * * @return void */ public function register() { // $this->app->bind('trade',function(){ return new Sale(); }); }
4 . Fügen Sie als Nächstes eine Zeile zum Provider-Array unter config/app.php hinzu,
App\Providers\TradeServiceProvider::class,
5. Schreiben Sie dann einen Test in unser Routing
Route::get('/',function (){ $trade = app('trade'); dd($trade->exchange()); }
Ausgabeergebnis: Transaktion erfolgreich!
6. An dieser Stelle haben wir unsere eigene Klasse zum IoC-Container hinzugefügt
Verwandte Empfehlungen:
Einige praktische Tipps zur Verbesserung der Leistung von Laravel 5
Laravel Redis Problem, dass mehrere Prozesse gleichzeitig Warteschlangen beanspruchen
Laravel schreibt APP-Schnittstelle (API)
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zum Hinzufügen benutzerdefinierter Klassen zum IoC-Container in Laravel5.4. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!