如何使用 Contracts

2018-02-24 15:51 更新

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

<?php namespace App\Handlers\Events;

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

class CacheUserInformation {

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

    /**
     * 建立新的事件處理實(shí)例
     *
     * @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)聽(tīng)被解析時(shí),服務(wù)容器會(huì)經(jīng)由類(lèi)構(gòu)造器參數(shù)的類(lèi)型提示,注入適當(dāng)?shù)闹?。要知道怎么注?cè)更多服務(wù)容器,參考這個(gè)文檔。

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)