ホームページ  >  記事  >  php教程  >  laravel5でサービスプロバイダーとファサードを作成する方法を詳しく解説

laravel5でサービスプロバイダーとファサードを作成する方法を詳しく解説

高洛峰
高洛峰オリジナル
2016-12-23 17:24:171531ブラウズ

この記事の例では、laravel5 でサービスプロバイダーとファサードを作成する方法を説明します。参考までに皆さんと共有してください。詳細は次のとおりです:

laravel5 はサービスをファサードとして登録できるファサードを作成するため、わざわざ使用する必要はありません。この記事では、例を使用してサービス プロバイダーとファサードを作成する方法を説明します。ターゲット

AjaxResponse のファサードを作成して、コントローラーで直接使用できるようにできればと思います:

class MechanicController extends Controller {
  public function getIndex()
  {
    \AjaxResponse::success();
  }
}
E

その役割は、

{
  code: "0"
  result: {
  }
}
E

として返される形式を規制することです。作成

作成

サービスクラス

app/Services フォルダーにクラス

<?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);
  }
}

を作成します

次に、このクラスのプロバイダーを作成する必要があります

プロバイダーを作成します

app/Providersフォルダー内にクラス

<?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();
    });
  }
}

を作成します

ここでは登録時にサービス名をAjaxResponseServiceとして定義しました

次にファサードを定義します

ファサードを作成します

app/Facadesフォルダーにクラス

<?php namespace App\Facades;
use Illuminate\Support\Facades\Facade;
class AjaxResponseFacade extends Facade {
  protected static function getFacadeAccessor() { return &#39;AjaxResponseService&#39;; }
}

を作成します

設定ファイルを変更します

さて、あとは app.php でこれら 2 つをマウントするだけです

<?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;,
  ],
];

概要

laravel5 でファサードを使用するのは比較的簡単で、基本的には上記と違いはありません4.

🎜この記事が、皆様のLaravelフレームワークをベースにしたPHPプログラム設計のお役に立てれば幸いです。 🎜🎜laravel5 でサービスプロバイダーとファサードを作成する方法の詳細な説明については、PHP 中国語 Web サイトに注目してください。 🎜
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。