W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
幾乎每個(gè) Laravel 框架引入的服務(wù)提供者都會(huì)綁定對(duì)象到服務(wù)容器中。你可以在 config/app.php 配置文件中找到應(yīng)用程序的服務(wù)提供者清單。如果你有時(shí)間,你應(yīng)該瀏覽過(guò)這里面每一個(gè)提供者的源代碼。通過(guò)這樣做,你將會(huì)更了解每一個(gè)提供者添加什么到框架,以及用什么鍵值來(lái)綁定各種服務(wù)到服務(wù)容器。
例如, HashServiceProvider 綁定 hash 做為鍵值到服務(wù)容器,它將解析成 Illuminate\Hashing\BcryptHasher 實(shí)例。你可以在應(yīng)用程序中覆寫(xiě)這個(gè) IoC 綁定,輕松地?cái)U(kuò)展并覆寫(xiě)這個(gè)類(lèi)。例如:
<?php namespace App\Providers;
class SnappyHashProvider extends \Illuminate\Hashing\HashServiceProvider {
public function boot()
{
parent::boot();
$this->app->bindShared('hash', function()
{
return new \Snappy\Hashing\ScryptHasher;
});
}
}
要注意的是這個(gè)類(lèi)擴(kuò)展 HashServiceProvider,不是默認(rèn)的 ServiceProvider 基礎(chǔ)類(lèi)。當(dāng)你擴(kuò)展了服務(wù)提供者,在 config/app.php 配置文件把 HashServiceProvider 換成你擴(kuò)展的提供者名稱(chēng)。
這是被綁定在容器的所有核心類(lèi)的一般擴(kuò)展方法。實(shí)際上,每個(gè)以這種方式綁定在容器的核心類(lèi)都可以被覆寫(xiě)。再次強(qiáng)調(diào),看過(guò)每個(gè)框架引入的服務(wù)提供者將會(huì)使你熟悉:每個(gè)類(lèi)被綁在容器的哪里、它們是用什么鍵值綁定。這是個(gè)好方法可以了解更多關(guān)于 Laravel 如何結(jié)合它們。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: