Laravel 8 綁定接口到實(shí)現(xiàn)

2021-07-16 17:31 更新

服務(wù)容器有一個(gè)很強(qiáng)大的功能,就是支持綁定接口到給定的實(shí)現(xiàn)。例如,如果我們有個(gè) EventPusher 接口 和一個(gè) RedisEventPusher 實(shí)現(xiàn)。一旦我們寫完了 EventPusher 接口的 RedisEventPusher 實(shí)現(xiàn),我們就可以在服務(wù)容器中注冊(cè)它,像這樣:

$this->app->bind(
    'App\Contracts\EventPusher',
    'App\Services\RedisEventPusher'
);

這么做相當(dāng)于告訴容器:當(dāng)一個(gè)類需要實(shí)現(xiàn) EventPusher 時(shí),應(yīng)該注入 RedisEventPusher?,F(xiàn)在我們就可以在構(gòu)造函數(shù)或者任何其他通過服務(wù)容器注入依賴項(xiàng)的地方使用類型提示注入 EventPusher 接口:

use App\Contracts\EventPusher;

/**
 * 創(chuàng)建一個(gè)新的類實(shí)例
 *
 * @param  EventPusher  $pusher
 * @return void
 */
public function __construct(EventPusher $pusher)
{
    $this->pusher = $pusher;
}
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)