Das Beispiel in diesem Artikel beschreibt, wie man einen Dienstanbieter und eine Fassade in Laravel5 erstellt. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Laravel5 erstellt eine Fassade, die einen Dienst als Fassade registrieren kann, sodass Sie sich nicht die Mühe machen müssen, ihn zu verwenden. Der Artikel veranschaulicht anhand eines Beispiels, wie Dienstanbieter und Fassade erstellt werden.
Ziel
Ich hoffe, ich erstelle eine AjaxResponse-Fassade, damit sie wie folgt direkt im Controller verwendet werden kann:
class MechanicController extends Controller { public function getIndex() { \AjaxResponse::success(); } }
Seine Funktion besteht darin, das zurückgegebene Format zu standardisieren als
{ code: "0" result: { } }
Schritte
Serviceklasse erstellen
in der App Erstellen Sie eine Klasse
<?php namespace App\Services; class AjaxResponse { protected function ajaxResponse($code, $message, $data = null) { $out = [ 'code' => $code, 'message' => $message, ]; if ($data !== null) { $out['result'] = $data; } return response()->json($out); } public function success($data = null) { $code = ResultCode::Success; return $this->ajaxResponse(0, '', $data); } public function fail($message, $extra = []) { return $this->ajaxResponse(1, $message, $extra); } }
im Ordner /Services
Diese AjaxResponse ist eine spezifische Implementierungsklasse. Als nächstes erstellen wir einen Anbieter für diese Klasse
Anbieter erstellen
Eine Klasse im Ordner „App/Anbieter“ erstellen
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class AjaxResponseServiceProvider extends ServiceProvider { public function register() { $this->app->singleton('AjaxResponseService', function () { return new \App\Services\AjaxResponse(); }); } }
Hier definieren wir den Dienstnamen bei der Registrierung Definieren wir für AjaxResponseService
eine weitere Fassade
Fassade erstellen
Klasse erstellen
<?php namespace App\Facades; use Illuminate\Support\Facades\Facade; class AjaxResponseFacade extends Facade { protected static function getFacadeAccessor() { return 'AjaxResponseService'; } }
im App/Facades-Ordner
Ändern Sie die Konfigurationsdatei
Okay, jetzt müssen wir nur noch diese beiden Dinge in app.php mounten
<?php return [ ... 'providers' => [ ... 'App\Providers\RouteServiceProvider', 'App\Providers\AjaxResponseServiceProvider', ], 'aliases' => [ ... 'Validator' => 'Illuminate\Support\Facades\Validator', 'View' => 'Illuminate\Support\Facades\View', 'AjaxResponse' => 'App\Facades\AjaxResponseFacade', ], ];
Zusammenfassung
Die Verwendung der Fassade in Laravel5 ist relativ einfach und unterscheidet sich im Grunde nicht von 4.
Ich hoffe, dass dieser Artikel für jedermann beim PHP-Programmdesign basierend auf dem Laravel-Framework hilfreich sein wird.
Ausführlichere Erklärungen zum Erstellen von Dienstanbietern und Fassaden in Laravel5 finden Sie auf der chinesischen PHP-Website!