扫码关注官方订阅号
小伙看你根骨奇佳,潜力无限,来学PHP伐。
machenchi0207 的答案在我看来已经很全了,但是我看题主没有采纳,又有邀请,所以我来回答一下我的寻找过程;
先上结果:
没错,就是通过这里返回给你的实例化后的类.
过程呢,就是跟着 IDE 点啊点啊,就到了.
好吧,还是有些问题的,比如 App 点进去的一开始就遇到了麻烦, 不知道下一步怎么点了.
App
这里 laravel 用的是 Facade 类 ;
protected static function getFacadeAccessor() { return 'app'; }
这里给了 'app' 这一提示信息, 根据这一提示信息, 可以去文档中去寻找. 文档拿去!
'app'
也可以 Control+Shift+F 查找 'app'
Control+Shift+F
public function registerCoreContainerAliases() { $aliases = [ 'app' => [ \Illuminate\Foundation\Application::class, \Illuminate\Contracts\Container\Container::class, \Illuminate\Contracts\Foundation\Application::class ],
确定了 Illuminate\Foundation\Application 为需要的类.
Illuminate\Foundation\Application
之后的事情就简单多了, ide 能直接跟进去, 最终找到返回实例化的地方.
这样的结果只是找到了地方,却没有理解过程.
可以辅以文档,如果能清晰的看懂注释就更好了, 一点点的理解laravel框架的思想, Facades & 容器 等.
完~
你应该好好看看源码里面的ioc 和di部分这里的make是看到你的参数是一个可以实例化的类,而不是接口、抽象类、别名之类的不能实例化的东西所以就直接使用反射给你造了一个实例返回给你的
make自动帮你注册了
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
machenchi0207 的答案在我看来已经很全了,但是我看题主没有采纳,又有邀请,所以我来回答一下我的寻找过程;
先上结果:

没错,就是通过这里返回给你的实例化后的类.
过程呢,就是跟着 IDE 点啊点啊,就到了.
好吧,还是有些问题的,比如
App点进去的一开始就遇到了麻烦, 不知道下一步怎么点了.这里 laravel 用的是 Facade 类 ;
这里给了
'app'这一提示信息, 根据这一提示信息, 可以去文档中去寻找. 文档拿去!也可以
Control+Shift+F查找'app'确定了
Illuminate\Foundation\Application为需要的类.之后的事情就简单多了, ide 能直接跟进去, 最终找到返回实例化的地方.
这样的结果只是找到了地方,却没有理解过程.
可以辅以文档,如果能清晰的看懂注释就更好了, 一点点的理解laravel框架的思想, Facades & 容器 等.
完~
你应该好好看看源码里面的ioc 和di部分
这里的make是看到你的参数是一个可以实例化的类,而不是接口、抽象类、别名之类的不能实例化的东西
所以就直接使用反射给你造了一个实例返回给你的
make自动帮你注册了