laravel5如何建立service provider和facade

來源:互聯網
上載者:User
laravel5建立一個facade,可以將某個service註冊個門面,這樣,使用的時候就不需要麻煩地use 了。文章用一個例子說明怎麼建立service provider和 facade。

目標

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

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

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

{    code: "0"    result: {    }}
步驟

建立Service類

在app/Services檔案夾中建立類

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

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

建立provider

在app/Providers檔案夾中建立類

app->singleton('AjaxResponseService', function () {            return new \App\Services\AjaxResponse();        });    }}

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

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

建立facade

在app/Facades檔案夾中建立類

   

修改設定檔

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

 [        ...        'App\Providers\RouteServiceProvider',        'App\Providers\AjaxResponseServiceProvider',    ],    'aliases' => [        ...        'Validator' => 'Illuminate\Support\Facades\Validator',        'View'      => 'Illuminate\Support\Facades\View',        'AjaxResponse' => 'App\Facades\AjaxResponseFacade',    ],];
總結

laravel5中使用facade還是較為容易的,基本和4沒啥區別。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.