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

Laravel中ServiceProvider使用場景示例詳解

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

ServiceProvider 的方式接入到 Laravel

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

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

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

register 就是把實例化對象的方式注冊到容器中。

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

順序是先 register 再 boot。

源碼驗證

這點可以在源碼中得到佐證:

干說也無趣,分析一個開源的 ServiceProvider 更直觀。

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

開源組件的 ServiceProvider

看這個開源組件的 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();
}

非常簡單,把配置文件推到 config 目錄下,加載配置文件,給中間件設(shè)置一個別名,擴展一下 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ì)上就是注冊一些實例化對象的方法到容器,用于后來的自動裝配,解決注入的依賴問題。

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

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

相關(guān)文章

  • PHP生成唯一訂單號的方法匯總

    PHP生成唯一訂單號的方法匯總

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Laravel的Auth驗證Token驗證使用自定義Redis的例子

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

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

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

最新評論

甘孜县| 德格县| 克东县| 镇雄县| 刚察县| 芦山县| 临沭县| 阿巴嘎旗| 菏泽市| 濉溪县| 高清| 厦门市| 离岛区| 肥城市| 彭山县| 博客| 宿迁市| 易门县| 达尔| 绥滨县| 灯塔市| 九台市| 乾安县| 朝阳市| 阿巴嘎旗| 蒲江县| 宝丰县| 奎屯市| 昭通市| 宁明县| 达尔| 富顺县| 永丰县| 新泰市| 宁安市| 康乐县| 北京市| 日照市| 太仓市| 贵港市| 启东市|