app('request') 如何才能知道这里面提供的方法?
比如说要找到 request都提供哪些方法?
app('request') ide又不给提示,我们又不知道有哪些方法,如何才能知道 request 这个服务提供者的方法?
1、首先打开 config/app.php 找到 aliases 数组
2、打开 Illuminate\Support\Facades\Request 这个类对应的文件 找到 getFacedeAccessor方法
这里面告诉了我们提供服务者注册的名称:
3、找到 vendor\laravel\framework\src\Illuminate\Foundation\Application.php
'request' => [\Illuminate\Http\Request::class, \Symfony\Component\HttpFoundation\Request::class],
我们可以看到 注册了两个class类
什么意思? 就是 当第一个类存在,就是使用第一个,如果第一个类不存在则使用后边的那个。
在tinker中测试:
php artisan tinker 启动tinker
然后通过app('') 这样的方法去获取request,看看注册的服务管理者是什么:
这两种方式都是可以获取的,我们看到这是一个对象 ,单例模式。
Illuminate\Http\Request 在项目中运行的类就是它。
vendor\laravel\framework\src\Illuminate\Http\Request.php 这样我们就知道了注册服务的提供者在哪里。
直接打开这个文件,就能查看提供的方法有哪些了。
以上就是 laravel中追踪代码的一些小技巧。