W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
Laravel 服務(wù)容器是管理類依賴的強力工具。依賴注入是比較專業(yè)的說法,真正意思是將類依賴透過構(gòu)造器或 「setter」 方法注入。
讓我們來看一個簡單的例子:
<?php namespace App\Handlers\Commands;
use App\User;
use App\Commands\PurchasePodcastCommand;
use Illuminate\Contracts\Mail\Mailer;
class PurchasePodcastHandler {
/**
* 一個發(fā)信功能的實現(xiàn)
*/
protected $mailer;
/**
* 創(chuàng)建一個新的實例
*
* @param Mailer $mailer
* @return void
*/
public function __construct(Mailer $mailer)
{
$this->mailer = $mailer;
}
/**
* 購買一個播客節(jié)目
*
* @param PurchasePodcastCommand $command
* @return void
*/
public function handle(PurchasePodcastCommand $command)
{
//
}
}
在這個例子中,當播客被購買時, PurchasePodcast 命令處理器需要發(fā)送一封電子郵件。所以,我們將注入一個服務(wù)來提供這個能力。當這個服務(wù)被注入以后,我們就可以輕易地切換到不同的實現(xiàn)。當測試我們的應(yīng)用程序時,我們同樣也可以輕易地「模擬」,或者創(chuàng)建一個虛擬的發(fā)信服務(wù)實現(xiàn),來幫助我們進行測試。
如果要創(chuàng)建一個強大并且大型的應(yīng)用,或者對 Laravel 的內(nèi)核做貢獻,首先必須對 Laravel 的服務(wù)容器進行深入了解。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: