Heim >php教程 >PHP开发 >Ausführliche Erklärung zum Erstellen eines Dienstanbieters und einer Fassade in Laravel5

Ausführliche Erklärung zum Erstellen eines Dienstanbieters und einer Fassade in Laravel5

高洛峰
高洛峰Original
2016-12-23 17:24:171577Durchsuche

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 = [
      &#39;code&#39; => $code,
      &#39;message&#39; => $message,
    ];
    if ($data !== null) {
      $out[&#39;result&#39;] = $data;
    }
    return response()->json($out);
  }
  public function success($data = null)
  {
    $code = ResultCode::Success;
    return $this->ajaxResponse(0, &#39;&#39;, $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(&#39;AjaxResponseService&#39;, 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 &#39;AjaxResponseService&#39;; }
}

im App/Facades-Ordner

Ändern Sie die Konfigurationsdatei

Okay, jetzt müssen wir nur noch diese beiden Dinge in app.php mounten

<?php
return [
  ...
  &#39;providers&#39; => [
    ...
    &#39;App\Providers\RouteServiceProvider&#39;,
    &#39;App\Providers\AjaxResponseServiceProvider&#39;,
  ],
  &#39;aliases&#39; => [
    ...
    &#39;Validator&#39; => &#39;Illuminate\Support\Facades\Validator&#39;,
    &#39;View&#39;   => &#39;Illuminate\Support\Facades\View&#39;,
    &#39;AjaxResponse&#39; => &#39;App\Facades\AjaxResponseFacade&#39;,
  ],
];

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn