作为程序员一定要保持良好的睡眠,才能好编程

laravel查找门脸及注入类小技巧

发布时间:2020-01-19


app('request') 如何才能知道这里面提供的方法?


比如说要找到 request都提供哪些方法?


app('request') ide又不给提示,我们又不知道有哪些方法,如何才能知道 request 这个服务提供者的方法?


1、首先打开  config/app.php  找到  aliases 数组

image.png

2、打开 Illuminate\Support\Facades\Request 这个类对应的文件 找到  getFacedeAccessor方法

这里面告诉了我们提供服务者注册的名称:

image.png


3、找到 vendor\laravel\framework\src\Illuminate\Foundation\Application.php


image.png


'request'              => [\Illuminate\Http\Request::class, \Symfony\Component\HttpFoundation\Request::class],


我们可以看到  注册了两个class类

什么意思? 就是 当第一个类存在,就是使用第一个,如果第一个类不存在则使用后边的那个。



在tinker中测试:


php artisan tinker 启动tinker

然后通过app('') 这样的方法去获取request,看看注册的服务管理者是什么:


image.png


image.png


这两种方式都是可以获取的,我们看到这是一个对象 ,单例模式。


Illuminate\Http\Request 在项目中运行的类就是它。


vendor\laravel\framework\src\Illuminate\Http\Request.php 这样我们就知道了注册服务的提供者在哪里。


直接打开这个文件,就能查看提供的方法有哪些了。


image.png


以上就是 laravel中追踪代码的一些小技巧。