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