首頁 >php教程 >PHP开发 >laravel5創建service provider和facade的方法詳解

laravel5創建service provider和facade的方法詳解

高洛峰
高洛峰原創
2016-12-23 17:24:171562瀏覽

本文實例講述了laravel5創建service provider和facade的方法。分享給大家供大家參考,具體如下:

laravel5建立一個facade,可以將某個service註冊個門面,這樣,使用的時候就不需要麻煩地use 了。文章用一個範例說明怎麼建立service provider和 facade。

目標

我希望我創建一個AjaxResponse的facade,這樣能直接在controller中這樣使用:

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

   

它的作用是規範返回的格式為規範返回的格式。

創建Service類別

在app/Services資料夾中建立類別

{
  code: "0"
  result: {
  }
}

   

這個AjaxResponse是具體的實作類,下面我們要為這個類別做一個provider

創建類別

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

   

這裡我們在register的時候定義了這個Service名字為AjaxResponseService

下面我們再定義一個門臉facade

修改設定檔

好了,下面我們只需要到app.php中掛載上這兩個東東就可以了

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

   

基本和4沒啥差別。

希望本文所述對大家基於Laravel框架的PHP程式設計有所幫助。

更多laravel5創建service provider和facade的方法詳解相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn