Laravel 8 如何使用契約

2021-07-13 11:35 更新

那么,如何實(shí)現(xiàn)契約呢?它其實(shí)很簡(jiǎn)單。

Laravel 中的許多類都是通過(guò) 服務(wù)容器 解析的,包括控制器、事件偵聽(tīng)器、中間件、隊(duì)列任務(wù),甚至路由閉包。因此,要實(shí)現(xiàn)契約,您只需在被解析的類的構(gòu)造函數(shù)中「類型提示」接口。

例如,查看此事件偵聽(tīng)器:

<?php

namespace App\Listeners;

use App\Events\OrderWasPlaced;
use App\Models\User;
use Illuminate\Contracts\Redis\Factory;

class CacheOrderInformation
{
    /**
     * Redis 工廠實(shí)現(xiàn)
     */
    protected $redis;

    /**
     * 創(chuàng)建一個(gè)事件處理實(shí)例
     *
     * @param  Factory  $redis
     * @return void
     */
    public function __construct(Factory $redis)
    {
        $this->redis = $redis;
    }

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

當(dāng)解析事件偵聽(tīng)器時(shí),服務(wù)容器將讀取類的構(gòu)造函數(shù)上的類型提示,并注入適當(dāng)?shù)闹怠?要了解更多有關(guān)在服務(wù)容器中注冊(cè)內(nèi)容的信息,請(qǐng)查看 其文檔。


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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)