如何使用 Contracts

2018-02-24 15:51 更新

所以,要如何實現(xiàn)一個 contract?實際上非常的簡單。很多 Laravel 的類都是經(jīng)由 service container 解析,包含控制器,事件監(jiān)聽,過濾器,隊列任務(wù),甚至是閉包。所以,要實現(xiàn)一個 contract,你可以在類的構(gòu)造器使用「類型提示」解析類。例如,看下面的事件處理程序:

<?php namespace App\Handlers\Events;

use App\User;
use App\Events\NewUserRegistered;
use Illuminate\Contracts\Redis\Database;

class CacheUserInformation {

    /**
     * Redis 數(shù)據(jù)庫實現(xiàn)
     */
    protected $redis;

    /**
     * 建立新的事件處理實例
     *
     * @param  Database  $redis
     * @return void
     */
    public function __construct(Database $redis)
    {
        $this->redis = $redis;
    }

    /**
     * 處理事件
     *
     * @param  NewUserRegistered  $event
     * @return void
     */
    public function handle(NewUserRegistered $event)
    {
        //
    }

}

當(dāng)事件監(jiān)聽被解析時,服務(wù)容器會經(jīng)由類構(gòu)造器參數(shù)的類型提示,注入適當(dāng)?shù)闹?。要知道怎么注冊更多服?wù)容器,參考這個文檔。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號