返回顶部
首页 > 资讯 > 精选 >laravel中的make方法有什么作用
  • 237
分享到

laravel中的make方法有什么作用

2023-06-29 06:06:43 237人浏览 薄情痞子
摘要

本文小编为大家详细介绍“laravel中的make方法有什么作用”,内容详细,步骤清晰,细节处理妥当,希望这篇“laravel中的make方法有什么作用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在larave

本文小编为大家详细介绍“laravel中的make方法有什么作用”,内容详细,步骤清晰,细节处理妥当,希望这篇“laravel中的make方法有什么作用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

在laravel中,make方法用于从容器当中解析一个type,该type是源码当中定义的,解析后返回的结果就是type的一个实例,容器类调用make方法时,若没有已注册的key,会自动通过反射类实例化具体类。

本文操作环境:windows10系统、Laravel6版、Dell G3电脑。

laravel中make方法的作用是什么

Laravel中的make方法是用来从容器当中解析一个type,这个type是源码当中定义的,不是很好翻译成中文。解析后返回的结果就是type的一个实例。

看过源码的同学应该知道在Illuminate\Foundation\Application这个类和它的父类Illuminate\Container\Container类中都有make方法,那么当执行如index.PHP中的这行代码,

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

的时候,就会首先去执行Illuminate\Foundation\Application中的make方法,那么我们就先看看它。(这篇文章就以make这个Kernel类为例)

          public function make($abstract, array $parameters = [])     {         $abstract = $this->getAlias($abstract);//调用父类中的getAlias方法      //如果在deferredServices这个数组设置了这个type并且在instances数组中没有设置这个type         if (isset($this->deferredServices[$abstract]) && ! isset($this->instances[$abstract])) {             $this->loadDeferredProvider($abstract);//那么就执行这个方法:加载被定义为延迟的服务提供者       }          return parent::make($abstract, $parameters);//调用父类的make方法     }

好,我们一步一步的来,先看看这个getAlias方法,这个方法的作用就是返回这个类的别名,如果给出的是一个完整的类名且在aliases中已经设置了那么就返回这个类名的别名,如果没有设置过就返回这个类名本身,大家在看这个方法的时候可以先var_dump一下$app,对照着看里面的aliases数组,框架作者写这个方法真的很巧妙,至少这种递归方式在我实际开发当中很少用到。

        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这个两个数组进行判断,在本例 $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); 当中,判断的结果为false,因此不执行loadDeferredProvider方法。

再接下来就是调用父类Illuminate\Container\Container中的make方法了,

          public function make($abstract, array $parameters = [])     {      return $this->resolve($abstract, $parameters);//直接调用resolve方法 }

读到这里,这篇“laravel中的make方法有什么作用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: laravel中的make方法有什么作用

本文链接: https://lsjlt.com/news/323356.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • laravel中的make方法有什么作用
    本文小编为大家详细介绍“laravel中的make方法有什么作用”,内容详细,步骤清晰,细节处理妥当,希望这篇“laravel中的make方法有什么作用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在larave...
    99+
    2023-06-29
  • laravel中的dingo有什么作用
    这篇文章主要介绍“laravel中的dingo有什么作用”,在日常操作中,相信很多人在laravel中的dingo有什么作用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”laravel中的dingo有什么作用...
    99+
    2023-06-29
  • laravel中wherehas有什么作用
    本篇内容主要讲解“laravel中wherehas有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“laravel中wherehas有什么作用”吧!在laravel中,...
    99+
    2023-07-01
  • laravel队列有什么作用
    这篇文章主要介绍了laravel队列有什么作用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇laravel队列有什么作用文章都会有所收获,下面我们一起来看看吧。在laravel中,队列可以用于允许在表的前端进行...
    99+
    2023-07-02
  • Java中的main方法有什么作用
    在Java中,main方法是程序的入口点。当一个Java程序被执行时,JVM会首先查找包含main方法的类,并且从main方法开始执...
    99+
    2024-04-02
  • Laravel中App_KEY的作用是什么
    这篇文章主要介绍“Laravel中App_KEY的作用是什么”,在日常操作中,相信很多人在Laravel中App_KEY的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Laravel中App_KEY...
    99+
    2023-07-04
  • jquery中hover方法有什么作用
    这篇文章主要讲解了“jquery中hover方法有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“jquery中hover方法有什么作用”吧! ...
    99+
    2024-04-02
  • javascript中stop方法有什么作用
    这篇文章主要介绍“javascript中stop方法有什么作用”,在日常操作中,相信很多人在javascript中stop方法有什么作用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • java中tostring方法有什么作用
    Java中的toString方法用于返回对象的字符串表示形式。它通常被用于打印对象的值或调试目的。具体来说,当一个对象被传递给Sys...
    99+
    2023-08-31
    java tostring
  • Python中Pandas方法有什么作用
    本篇内容介绍了“Python中Pandas方法有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!pandas.cut(x, bins,...
    99+
    2023-06-02
  • Python中__new__方法有什么作用
    本篇内容介绍了“Python中__new__方法有什么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、__new__方法简介接下来通过...
    99+
    2023-07-06
  • Laravel中存储库模式有什么作用
    这篇文章主要讲解了“Laravel中存储库模式有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Laravel中存储库模式有什么作用”吧!单一责任原则单一责任原则是主要鉴别器来区分Ac...
    99+
    2023-06-25
  • Laravel中数据库迁移的操作方法是什么
    这篇文章主要介绍了Laravel中数据库迁移的操作方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Laravel中数据库迁移的操作方法是什么文章都会有所收获,下面我们一起来看看吧。一:创建迁移在lara...
    99+
    2023-07-05
  • Laravel操作session和cookie的方法是什么
    本篇内容主要讲解“Laravel操作session和cookie的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Laravel操作session和cookie的方法是什么”吧!一:操作...
    99+
    2023-07-05
  • php中的构造方法有什么作用
    今天小编给大家分享一下php中的构造方法有什么作用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在PHP中,构造方法的作用是...
    99+
    2023-06-29
  • laravel的路由命名有什么作用
    这篇“laravel的路由命名有什么作用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“laravel的路由命名有什么作用”文...
    99+
    2023-06-29
  • laravel的中间件有这么作用
    本篇内容介绍了“laravel的中间件有这么作用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在laravel中,中间件的作用就是过滤HTT...
    99+
    2023-06-29
  • site方法有什么作用
    这篇文章主要讲解了“site方法有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“site方法有什么作用”吧!site语法设定的初衷,其实是期望用户可以设定约束搜索范围,实现更加精准的...
    99+
    2023-06-12
  • Java的Sleep()方法有什么作用
    这篇文章主要讲解了“Java的Sleep()方法有什么作用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java的Sleep()方法有什么作用”吧!使当前线程(即调用该方法的Java线程)暂...
    99+
    2023-06-17
  • Thread的Join方法有什么作用
    Thread类的join()方法用于等待该线程执行完毕。当一个线程调用另一个线程的join()方法时,调用线程将被阻塞,直到被调用线...
    99+
    2023-10-12
    Thread Join
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作