当前位置:首页 > 日记 > 正文

延迟laravel容器和认证扩展的详细解决方案加载

延迟laravel容器和认证扩展的详细解决方案加载
昨天,我写了根据手册教程认证扩展。根据包装独立原则,我不想写作者::延长()在start.php。毫无疑问,我选择在服务提供者寄存器()方法中注册扩展驱动程序,但是它违背了您的意愿…
发现问题
我写这个的时候,LoauthServiceProvider:

复制代码代码如下所示:

公共函数寄存器()

{
◎认证::延长('loauth功能($ APP){ });

}
报告错误

复制代码代码如下所示:

调用未定义的方法说明支持外墙认证::延长()
找到原因
那时候,我很无聊,找到了原因。这是怀疑奥特是不是注册。检查中发现的登记,因为它可以用于路由;PHP工匠清楚编译是无用的;这是困惑,甚至怀疑我意外修改的核心课,下载laravel,再包,问题依旧。

到了晚上,我把眼睛上的延迟属性authserviceprovider美元。

根据手册和注释,我们知道美元的延迟属性用于延迟加载的服务提供商,并直点延迟执行登记()方法,它只需要配合提供()的方法。例如 uff1a

复制代码代码如下所示:

公共职能提供()

{

返回的数组('auth);

}
这是authserviceprovider方法,当框架初始化,依次加载服务提供者,如果发现服务提供者保护延迟=真美元会调用它提供()方法返回的数组包含延迟加载的服务名称,所以当我们在控制器或其他本地路由,呼叫作者:(法):当调用登记()设置方法。

确定问题的症结
所以问题是,既然是被动的延迟加载,也就是说,当我叫auth类的方法,它会自动实例化对象类。为什么我建议的方法不存在时,我叫LoauthServiceProvider,但它可以在路由。

我想这是因为优先级的问题,可能在loauthserviceprovider框架注册(登记):当奥特没有标记为延迟加载,这就造成了一个顺序问题,任何服务提供商不能立即加载在登记方法调用延迟加载服务。

经过研究,发现在核心代码说明 providerrepository基础

复制代码代码如下所示:

公共功能负载(应用程序应用程序,数组提供程序)

{

省略…

我们将在前面注册并将所有受欢迎的提供者注册为

应用程序,因此它们的服务可以在应用程序中注册为

提供的服务。然后,我们将在它上设置延迟服务列表。

foreach($体现'eager'} { $提供商)

{

为应用程序->登记(美元-> createprovider($ APP,提供美元));

}

在延迟加载/立即加载后标记服务

应用程序-> setdeferredservices美元(美元表现'deferred{ });

}
解决方案
虽然发现了问题,但并不意味着问题得到了解决。修改核心代码不是明智的选择,因此我们只能在自己的包中考虑它。

复制代码代码如下所示:

公共函数寄存器()

{
authprovider美元=新 authserviceprovider照亮auth(美元->应用程序);

authprovider美元->登记();

◎认证::延长('loauth功能($ APP){ });

}
由于认证是没有注册,我们手动调用它的登记方法登记。

以上是本文的全部内容,希望大家能喜欢。

相关文章

一个解决IMG和BR之间的差距

一个解决IMG和BR之间的差距

差距,电脑软件,IMG,BR,当你设计的网页,发现两IMG线之间存在差距。这不符合我的设计意图。经过测试,img标签加CSS样式垂直对齐:底部可以解决这个问题。 在一个Web页面的布局的今天,我们发现了两个IMG线之间的差距和不同意我的设计。以下是我的…

PS图象处理软件的时间表使GIF动画

PS图象处理软件的时间表使GIF动画

动画,时间表,图象,处理软件,简单,本教程主要是介绍PS图象处理软件的时间轴的一个朋友,做一个简单的方法来制作GIF动画。很适合初学者学习。 很多人不知道PS图象处理软件可以做动画,这是非常有用的,简单的。现在我教你如何制作动画——PS;mdash;…

递归创建目录的PHP方法

递归创建目录的PHP方法

创建目录,方法,递归,电脑软件,PHP,本文介绍了PHP递归创建目录的方法,供大家分享,供大家参考。 具体实现代码如下: 功能mk_dir($路径){ 第一,目录已经存在 如果(is_dir($路径)){ 返回; } 第二个案例,父目录存在,本身不存在。 如果(is_dir(dirname($路径))){ m…

js正则表达式验证了一个文件格式。

js正则表达式验证了一个文件格式。

正则表达式,验证,文件格式,电脑软件,js,首先,说出我所需要的 我想请求输入文本框中的内容格式。 内容必须是 字符串 +字符串字符串 字符串+ + + + +字符串字符串 字符串++++字符串字符串 。 字符串的数量没有限制。 字符串由字母(大小写)、…

PS使用搅拌机刷工具添加厚厚的雪到

PS使用搅拌机刷工具添加厚厚的雪到

工具,荒野,电脑软件,PS,在画雪之前,最好先找到一些雪的图片,了解雪的结构,颜色的变化,雪中一些物体的光线,这是画出我心的底部。 在画雪之前最好先找到一些雪的图片,了解雪的结构,颜色的变化,雪中一些物体的光线,这是我画的最底层,作者的方法也很好,…

ThinkPHP特殊标签使用的概述

ThinkPHP特殊标签使用的概述

标签,电脑软件,ThinkPHP,本文阐述了ThinkPHP特殊标签的用法。分享给你供你参考。具体分析如下: 特殊的标签: 1。比较标签 等于或等于 NEQ或等于不等于 gt大于 EGT大于等于等于 lt小于 英语低于等于或等于 HEQ标识 Nheq不是恒定的 …

CorelDRAW易使一个美丽的三叶草标

CorelDRAW易使一个美丽的三叶草标

图标,一个美丽,三叶,标志,过程,本教程主要使用CorelDraw创建漂亮的三叶草芦图标的方法。教程制作的过程相对简单。这个方法比较适合新朋友学习,喜欢朋友,一起学习吧。 This tutorial is to introduce a friend to make use of CorelDraw sim…

ajax登录功能的简单实现(非连接数据

ajax登录功能的简单实现(非连接数据

简单实现,连接数据库,登录,功能,电脑软件,简单登录功能(不连接数据库) 复制代码代码如下所示: $(函数(){()) $(#踢脚)。Click(function(){) 用户名= $(var的#用户名)瓦迩(); var pwd =美元(# PWD)。瓦迩(); $ ajax({ 类型:邮政 内容类型:应用程序/ JSON 网址:资源管理器…

图CorelDRAW写作小技巧

图CorelDRAW写作小技巧

小技巧,电脑软件,CorelDRAW,本教程介绍一个小技巧制作的朋友,这是推荐给你的朋友。 我们经常使用小标宋、大宋等在CorelDraw,这是非常薄的,如果我们做反字,尤其是五彩的反字,有时我们几乎看不到笔触。 在这种情况下,每个人都应该想到白色这个技…

在jQuery中用DOM操作替换正则表达

在jQuery中用DOM操作替换正则表达

替换,正则表达式,操作,中用,电脑软件,随着B/s结构的客户机越来越胖,作为一个完整的程序员,您可能会操纵前端的HTML字符串,并注意到它是HTML字符串的操作,而不是当前页面的HTML操作。 例如,百度的在线HTML富文本编辑器UEditor,使富文本文件在线,与…

JDBC连接数据库步骤的深入分析

JDBC连接数据库步骤的深入分析

步骤,连接数据库,电脑软件,JDBC,创建一个连接JDBC数据库的程序,包括7个步骤: 1。加载JDBC驱动程序: 连接数据库之前,首先要加载数据库,你想连接到JVM(java虚拟机)。 这是通过静态方法执行forName(String className)的java.lang.class类。 例如: 复制…

PS图象处理软件是野草的美和漂亮的

PS图象处理软件是野草的美和漂亮的

韩国,野草,褐色,图象,处理软件,地图色彩的效果主要分为两个步骤:首先需要用调色板工具来转,主要颜色是红棕色,蓝色的天空可以保留;然后增加区域的深蓝色紫色,浅蓝色和高光的增加,整个过程可以是温和的。 地图色彩的效果主要分为两个步骤:首先需要…