最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Laravel中ServiceProvider使用場(chǎng)景示例詳解

 更新時(shí)間:2023年06月28日 10:23:45   作者:church  
這篇文章主要為大家介紹了Laravel中ServiceProvider使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

ServiceProvider 的方式接入到 Laravel

有些朋友說(shuō),看了很多資料也不太明白 ServiceProvider 到底是干嘛用的,今天我試圖用大白話聊一聊 ServiceProvier。

設(shè)想一個(gè)場(chǎng)景,你寫了一個(gè)CMS,那自然就包含了路由、配置、數(shù)據(jù)庫(kù)遷移、幫助函數(shù)或類等。如果你要用 ServiceProvider 的方式接入到 Laravel,應(yīng)該怎么辦?

我們?cè)谏鲜鲇昧?“接入到 Laravel” 這樣的字眼,本質(zhì)上就是把這些信息告訴 Kernel。如何告訴呢?使用 Laravel 提供的 ServiceProvider,默認(rèn) ServiceProvider 要提供兩個(gè)方法 register 和 boot。

register 就是把實(shí)例化對(duì)象的方式注冊(cè)到容器中。

boot 就是做一些把配置文件推到項(xiàng)目根目錄下的 config 目錄下面,加載配置到 Kernel 或加載路由等動(dòng)作。

順序是先 register 再 boot。

源碼驗(yàn)證

這點(diǎn)可以在源碼中得到佐證:

干說(shuō)也無(wú)趣,分析一個(gè)開源的 ServiceProvider 更直觀。

https://github.com/tymondesig...

開源組件的 ServiceProvider

看這個(gè)開源組件的 ServiceProvider 是怎么寫的:

https://github.com/tymondesig...

public function boot()
{
    $path = realpath(__DIR__.'/../../config/config.php');
    $this->publishes([$path => config_path('jwt.php')], 'config');
    $this->mergeConfigFrom($path, 'jwt');
    $this->aliasMiddleware();
    $this->extendAuthGuard();
}

非常簡(jiǎn)單,把配置文件推到 config 目錄下,加載配置文件,給中間件設(shè)置一個(gè)別名,擴(kuò)展一下 AuthGuard。

看它的基類 https://github.com/tymondesig...

public function register()
{
    $this->registerAliases();
    $this->registerJWTProvider();
    $this->registerAuthProvider();
    $this->registerStorageProvider();
    $this->registerJWTBlacklist();
    $this->registerManager();
    $this->registerTokenParser();
    $this->registerJWT();
    $this->registerJWTAuth();
    $this->registerPayloadValidator();
    $this->registerClaimFactory();
    $this->registerPayloadFactory();
    $this->registerJWTCommand();
    $this->commands('tymon.jwt.secret');
}
protected function registerNamshiProvider()
{
    $this->app->singleton('tymon.jwt.provider.jwt.namshi', function ($app) {
        return new Namshi(
            new JWS(['typ' => 'JWT', 'alg' => $this->config('algo')]),
            $this->config('secret'),
            $this->config('algo'),
            $this->config('keys')
        );
    });
}
/**
 * Register the bindings for the Lcobucci JWT provider.
 *
 * @return void
 */
protected function registerLcobucciProvider()
{
    $this->app->singleton('tymon.jwt.provider.jwt.lcobucci', function ($app) {
        return new Lcobucci(
            new JWTBuilder(),
            new JWTParser(),
            $this->config('secret'),
            $this->config('algo'),
            $this->config('keys')
        );
    });
}

本質(zhì)上就是注冊(cè)一些實(shí)例化對(duì)象的方法到容器,用于后來(lái)的自動(dòng)裝配,解決注入的依賴問(wèn)題。

所以 ServiceProvider 本質(zhì)上是個(gè)啥?它就是提供接入 Laravel 的方式,它本身并不實(shí)現(xiàn)具體功能,只是將你寫好的功能以 Laravel 能識(shí)別的方式接入進(jìn)去。

以上就是Laravel中ServiceProvider使用示例詳解的詳細(xì)內(nèi)容,更多關(guān)于Laravel ServiceProvider的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • PHP生成唯一訂單號(hào)的方法匯總

    PHP生成唯一訂單號(hào)的方法匯總

    前陣子有個(gè)電子商務(wù)項(xiàng)目,需要生成訂單號(hào)。當(dāng)時(shí)的考慮很簡(jiǎn)單,取系統(tǒng)時(shí)間加上隨機(jī)數(shù),或者使用 uniqid() 方法。仔細(xì)考慮下上述方法,在顧客購(gòu)買量少的情況下,訂單重復(fù)的可能性為零,但是在購(gòu)買高蜂期生成的訂單號(hào)重復(fù)是很有可能發(fā)生的。
    2015-04-04
  • CTF中的PHP特性函數(shù)解析之中篇

    CTF中的PHP特性函數(shù)解析之中篇

    這篇文章主要為大家介紹了CTF中的PHP特性函數(shù)解析,本文分三篇此篇為中篇,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • laravel郵件發(fā)送的實(shí)現(xiàn)代碼示例

    laravel郵件發(fā)送的實(shí)現(xiàn)代碼示例

    這篇文章主要介紹了laravel郵件發(fā)送的實(shí)現(xiàn)代碼示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Docker搭建自己的PHP開發(fā)環(huán)境

    Docker搭建自己的PHP開發(fā)環(huán)境

    本文給大家介紹的是如何在docker中搭建一個(gè)PHP的開發(fā)環(huán)境,將用 zPhal-dockerfiles 做為例子,有需要的小伙伴可以參考下
    2018-02-02
  • Laravel框架實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理平臺(tái)案例【附源碼下載】

    Laravel框架實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理平臺(tái)案例【附源碼下載】

    這篇文章主要介紹了Laravel框架實(shí)現(xiàn)簡(jiǎn)單的學(xué)生信息管理平臺(tái),結(jié)合具體案例形式較為詳細(xì)的分析了基于Laravel框架的學(xué)生信息管理平臺(tái)路由與控制器相關(guān)操作技巧,并附帶完整源碼供讀者下載參考,需要的朋友可以參考下
    2019-05-05
  • 深入PHP數(shù)據(jù)緩存的使用說(shuō)明

    深入PHP數(shù)據(jù)緩存的使用說(shuō)明

    本篇文章是對(duì)PHP數(shù)據(jù)緩存的使用進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下
    2013-05-05
  • Yii框架數(shù)據(jù)庫(kù)查詢、增加、刪除操作示例

    Yii框架數(shù)據(jù)庫(kù)查詢、增加、刪除操作示例

    這篇文章主要介紹了Yii框架數(shù)據(jù)庫(kù)查詢、增加、刪除操作,結(jié)合實(shí)例形式總結(jié)分析了Yii框架數(shù)據(jù)庫(kù)查詢、增加、刪除相關(guān)模型與控制器使用技巧,需要的朋友可以參考下
    2019-10-10
  • php 修改zen-cart下單和付款流程以防止漏單

    php 修改zen-cart下單和付款流程以防止漏單

    zen-cart進(jìn)入第三方支付網(wǎng)站后,如果不能正常返回,則會(huì)造成客戶已付款但后臺(tái)卻無(wú)訂單數(shù)據(jù)的尷尬局面。本文就針對(duì)該問(wèn)題給出一種解決方案,希望對(duì)被同樣問(wèn)題困擾的同行有所幫助。
    2010-03-03
  • Laravel的Auth驗(yàn)證Token驗(yàn)證使用自定義Redis的例子

    Laravel的Auth驗(yàn)證Token驗(yàn)證使用自定義Redis的例子

    今天小編就為大家分享一篇Laravel的Auth驗(yàn)證Token驗(yàn)證使用自定義Redis的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • laravel框架實(shí)現(xiàn)后臺(tái)登錄、退出功能示例

    laravel框架實(shí)現(xiàn)后臺(tái)登錄、退出功能示例

    這篇文章主要介紹了laravel框架實(shí)現(xiàn)后臺(tái)登錄、退出功能,結(jié)合實(shí)例形式詳細(xì)分析了Laravel框架后臺(tái)登錄、退出相關(guān)的請(qǐng)求發(fā)送、驗(yàn)證、session讀寫與刪除等相關(guān)操作技巧,需要的朋友可以參考下
    2019-10-10

最新評(píng)論

栾城县| 大港区| 高雄市| 常熟市| 揭西县| 罗江县| 尼木县| 牙克石市| 翁牛特旗| 根河市| 伊吾县| 九龙城区| 安福县| 明溪县| 泽普县| 鹤庆县| 南木林县| 锦屏县| 桂平市| 五大连池市| 大兴区| 眉山市| 平潭县| 古交市| 龙口市| 金平| 增城市| 连南| 潮安县| 金堂县| 静宁县| 青浦区| 长汀县| 陇南市| 吴堡县| 琼中| 若尔盖县| 青神县| 茌平县| 石首市| 灵璧县|