Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
581 views
in Technique[技术] by (71.8m points)

在laravel中,我没有在 “服务提供者” 里绑定特定的类,为什么还是可以用到我这个corp类里面的方法呢?

图片描述

图片描述

图片描述

图片描述


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

machenchi0207 的答案在我看来已经很全了,但是我看题主没有采纳,又有邀请,所以我来回答一下我的寻找过程;

先上结果:
图片描述

没错,就是通过这里返回给你的实例化后的类.

过程呢,就是跟着 IDE 点啊点啊,就到了.

好吧,还是有些问题的,比如 App 点进去的一开始就遇到了麻烦, 不知道下一步怎么点了.

这里 laravel 用的是 Facade 类 ;

protected static function getFacadeAccessor()
{
    return 'app';
}

这里给了 'app' 这一提示信息, 根据这一提示信息, 可以去文档中去寻找. 文档拿去!

也可以 Control+Shift+F 查找 'app'

public function registerCoreContainerAliases()
{
    $aliases = [
        'app'                  => [
            IlluminateFoundationApplication::class,
            IlluminateContractsContainerContainer::class,
            IlluminateContractsFoundationApplication::class
        ],

确定了 IlluminateFoundationApplication 为需要的类.

之后的事情就简单多了, ide 能直接跟进去, 最终找到返回实例化的地方.

这样的结果只是找到了地方,却没有理解过程.

可以辅以文档,如果能清晰的看懂注释就更好了, 一点点的理解laravel框架的思想, Facades & 容器 等.

完~


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...