L'exemple de cet article décrit comment créer un fournisseur de services et une façade dans laravel5. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Laravel5 crée une façade, qui peut enregistrer un service en tant que façade, afin que vous n'ayez pas à vous soucier de l'utiliser. L'article utilise un exemple pour illustrer comment créer un fournisseur de services et une façade.
Objectif
J'espère créer une façade AjaxResponse afin qu'elle puisse être utilisée directement dans le contrôleur comme ceci :
class MechanicController extends Controller { public function getIndex() { \AjaxResponse::success(); } }
Sa fonction est de standardiser le format renvoyé comme
{ code: "0" result: { } }
Étapes
Créer une classe de service
dans l'application Créez une classe
<?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); } }
dans le dossier /Services
Cette AjaxResponse est une classe d'implémentation spécifique. Ensuite, nous créerons un fournisseur pour cette classe
Créer un fournisseurCréer une classe dans le dossier app/Providers<?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(); }); } }Ici, nous définissons le nom du service lors de l'inscription Pour AjaxResponseService, définissons une autre façadeCréer une façadeCréer une classe
<?php namespace App\Facades; use Illuminate\Support\Facades\Facade; class AjaxResponseFacade extends Facade { protected static function getFacadeAccessor() { return 'AjaxResponseService'; } }
dans le dossier app/Facades
Modifier le fichier de configurationD'accord, il ne nous reste plus qu'à monter ces deux choses dans app.php<?php return [ ... 'providers' => [ ... 'App\Providers\RouteServiceProvider', 'App\Providers\AjaxResponseServiceProvider', ], 'aliases' => [ ... 'Validator' => 'Illuminate\Support\Facades\Validator', 'View' => 'Illuminate\Support\Facades\View', 'AjaxResponse' => 'App\Facades\AjaxResponseFacade', ], ];RésuméIl est relativement facile d'utiliser la façade dans laravel5, fondamentalement pas différente de 4. J'espère que cet article sera utile à la conception de programmes PHP basés sur le framework Laravel. Pour des explications plus détaillées sur la façon de créer un fournisseur de services et une façade dans laravel5, veuillez faire attention au site Web PHP chinois !