老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務

laravel中的make方法有什么作用

本文小編為大家詳細介紹“l(fā)aravel中的make方法有什么作用”,內(nèi)容詳細,步驟清晰,細節(jié)處理妥當,希望這篇“l(fā)aravel中的make方法有什么作用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

創(chuàng)新互聯(lián)專注于中大型企業(yè)的成都網(wǎng)站建設、網(wǎng)站制作和網(wǎng)站改版、網(wǎng)站營銷服務,追求商業(yè)策劃與數(shù)據(jù)分析、創(chuàng)意藝術與技術開發(fā)的融合,累計客戶千余家,服務滿意度達97%。幫助廣大客戶順利對接上互聯(lián)網(wǎng)浪潮,準確優(yōu)選出符合自己需要的互聯(lián)網(wǎng)運用,我們將一直專注成都品牌網(wǎng)站建設和互聯(lián)網(wǎng)程序開發(fā),在前進的路上,與客戶一起成長!

在laravel中,make方法用于從容器當中解析一個type,該type是源碼當中定義的,解析后返回的結(jié)果就是type的一個實例,容器類調(diào)用make方法時,若沒有已注冊的key,會自動通過反射類實例化具體類。

本文操作環(huán)境:Windows10系統(tǒng)、Laravel6版、Dell G3電腦。

laravel中make方法的作用是什么

Laravel中的make方法是用來從容器當中解析一個type,這個type是源碼當中定義的,不是很好翻譯成中文。解析后返回的結(jié)果就是type的一個實例。

看過源碼的同學應該知道在Illuminate\Foundation\Application這個類和它的父類Illuminate\Container\Container類中都有make方法,那么當執(zhí)行如index.php中的這行代碼,

1 $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

的時候,就會首先去執(zhí)行Illuminate\Foundation\Application中的make方法,那么我們就先看看它。(這篇文章就以make這個Kernel類為例)

     /**
      * Resolve the given type from the container. 從容器當中解析給定的type
      *
      * (Overriding Container::make) 覆蓋了父類中的make方法
      *
      * @param  string  $abstract 給定的type
      * @param  array  $parameters 指定一些參數(shù) 可選項
      * @return mixed
      */
     public function make($abstract, array $parameters = [])
     {
         $abstract = $this->getAlias($abstract);//調(diào)用父類中的getAlias方法
      //如果在deferredServices這個數(shù)組設置了這個type并且在instances數(shù)組中沒有設置這個type
         if (isset($this->deferredServices[$abstract]) && ! isset($this->instances[$abstract])) {
             $this->loadDeferredProvider($abstract);//那么就執(zhí)行這個方法:加載被定義為延遲的服務提供者
       }
 
         return parent::make($abstract, $parameters);//調(diào)用父類的make方法
     }

好,我們一步一步的來,先看看這個getAlias方法,這個方法的作用就是返回這個類的別名,如果給出的是一個完整的類名且在aliases中已經(jīng)設置了那么就返回這個類名的別名,如果沒有設置過就返回這個類名本身,大家在看這個方法的時候可以先var_dump一下$app,對照著看里面的aliases數(shù)組,框架作者寫這個方法真的很巧妙,至少這種遞歸方式在我實際開發(fā)當中很少用到。

    /**
      * Get the alias for an abstract if available.
     *
     * @param  string  $abstract
     * @return string
    *
     * @throws \LogicException
     */
    public function getAlias($abstract)
    {
         if (! isset($this->aliases[$abstract])) {
            return $abstract;
         }
 
        if ($this->aliases[$abstract] === $abstract) {
            throw new LogicException("[{$abstract}] is aliased to itself.");
        }
        return $this->getAlias($this->aliases[$abstract]);
     }

接下來就是對deferredServices和instances這個兩個數(shù)組進行判斷,在本例 $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); 當中,判斷的結(jié)果為false,因此不執(zhí)行l(wèi)oadDeferredProvider方法。

再接下來就是調(diào)用父類Illuminate\Container\Container中的make方法了,

     /**
      * Resolve the given type from the container.
      *
      * @param  string  $abstract
      * @param  array  $parameters
      * @return mixed
     */
     public function make($abstract, array $parameters = [])
     {
      return $this->resolve($abstract, $parameters);//直接調(diào)用resolve方法
 }

讀到這里,這篇“l(fā)aravel中的make方法有什么作用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內(nèi)容的文章,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當前名稱:laravel中的make方法有什么作用
網(wǎng)站路徑:http://www.xueling.net.cn/article/isghoj.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 日本一卡2卡3卡4卡5卡精品视频 | 国产网站色 | 亚洲爆乳精品无码一区二区 | 中国裸男自慰GV网站 | 人妻丝袜AV中文系列先锋影音 | 国产成人在线看 | 色偷偷88888欧美精品久久久 | 久草久草在线观看 | 亚洲精品无码AV中文字幕 | 黄污视频在线免费观看 | 一本一道久久a久久综合精品 | 亚洲欧美日韩精品一区二区 | 欧美久操视频 | 在线观看黄免费 | 国产黄色a级毛片 | 在线亚洲精品国产二区图片欧美 | 无码精品一区二区三区四区爱奇艺 | 免费看日韩视频 | 中国少妇毛多水多 | 强被迫伦姧在线观看无码 | 亚洲精品少妇久久久久久 | 国产亚洲AV无码专区A∨麻豆 | 亚洲国产乱人在线观看 | 日日摸日日碰夜夜爽亚洲精品蜜乳 | 亚洲国产AV一区二区三区丶 | 欧美精选视频在线观看 | 香港a毛片免费全部播放 | 老司机久久精品视频 | 无码人妻精品一区二区三区不卡 | 91亚洲网| 国产成人啪精品视频免费视频 | www久草| 久久精品娱乐亚洲领先 | 亚洲精华液 | 性一交一乱一透一a级 | 国产偷久久一级精品60部 | 久久久久人 | 一二三四在线播放免费观看中文版视频 | 欧美成人性色 | 欧美日韩中文字幕在线观看 | 国产女人爽的流水毛片 |