Route门脸类为例,我们定义路由时使用的就是Route门脸类,例如我们在web.php中定义的路由

use Illuminate\Support\Facades\Route;

Route::get('/', 'DashboardController@index');
Route::get('/login', 'LoginController@index')->name('login');

我们可以使用PHPStorm自带的跳转功能,跳转到Route门脸类的定义处,如下图所示(Mac上的快捷键是:Command+鼠标左键单击)

当我们跳转到Route门脸类定义的地方时却发现,这里有的只是一些方法的注释,却没有我们实际调用Route::get()方法的源码,

实际上,真正的源码在getFacadeAccessor()方法返回的router标识所对应的服务里. 所有我们得查看router对应的服务,

服务在哪里查看?

laravel注册服务的地方有两个,一个在config/app.php的providers里,一个在框架的核心里

下图是框架的核心laravel/framework/src/Illuminate/Foundation/Application.php中的registerCoreContainerAliasesrouter对应的服务

可以看到,router对应的是一个有三个服务的数组,那么router实际上用的是哪一个呢?这里需要用到tinker了,进入到项目目录,执行命令php artisan tinker,通过app('服务标识')查看实际对应的服务



由图片可以看出,router实际对应是Illuminate/Routing/Router.php,我们查看该文件,如图所示,就能看到Route门脸类的方法的源码了,你熟悉的get, post源码找到啦

如何查看laravel门脸类包含方法的源码的更多相关文章

  1. [Java源码解析] -- String类的compareTo(String otherString)方法的源码解析

    String类下的compareTo(String otherString)方法的源码解析 一. 前言 近日研究了一下String类的一些方法, 通过查看源码, 对一些常用的方法也有了更透彻的认识,  ...

  2. vs2010查看quartz.net 2.1.2的源码时其中一报错的解决方法

    问题: 使用vs2010查看quartz.net 2.1.2的源码时,报错: ..\Quartz.NET-2.1.2\server\Quartz.Server\Quartz.Server.2010.c ...

  3. Pycharm中查看方法的源码

    方法1.鼠标放在函数上,Ctrl+B,看源码 方法2.将光标移动至要查看的方法处,按住ctrl 键,点击鼠标左键,即可查看该方法的源码.

  4. 7.Java集合-Arrays类实现原理及源码分析

    Java集合---Arrays类源码解析  转自:http://www.cnblogs.com/ITtangtang/p/3948765.html 一.Arrays.sort()数组排序 Java A ...

  5. HttpServlet中service方法的源码解读

    前言     最近在看<Head First Servlet & JSP>这本书, 对servlet有了更加深入的理解.今天就来写一篇博客,谈一谈Servlet中一个重要的方法-- ...

  6. Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码)

    Linux下使用FreeTDS访问MS SQL Server 2005数据库(包含C测试源码) http://blog.csdn.net/helonsy/article/details/7207497 ...

  7. Scala 深入浅出实战经典 第41讲:List继承体系实现内幕和方法操作源码揭秘

    Scala 深入浅出实战经典 第41讲:List继承体系实现内幕和方法操作源码揭秘 package com.parllay.scala.dataset /** * Created by richard ...

  8. 《JAVA高并发编程详解》-Thread start方法的源码

    Thread start方法的源码:

  9. thymeleaf模板引擎调用java类中的方法(附源码)

    前言 <Docker+SpringBoot+Mybatis+thymeleaf的Java博客系统开源啦> 由于开源了项目的缘故,很多使用了My Blog项目的朋友遇到问题也都会联系我去解决 ...

随机推荐

  1. jmeter相关知识学习记录

    基于Jmeter5.2.1 断言之响应断言 响应断言:对服务器的响应接口进行断言校验,来判断接口测试得到的接口返回值是否正确. 测试字段就是指要断言的内容的匹配处. 响应文本:就是响应的body部分: ...

  2. ElementPath

    ElementTree库附带了一个简单的类似XPath的路径语言ElementPath主要区别在于,可以在ElementPath表达式中使用{namespace}标记符号但是,诸如值比较和函数之类的高 ...

  3. 如何开启php错误日志

    nginx与apache不一样,在apache中可以直接指定php的错误日志,那样在php执行中的错误信息就直接输入到php的错误日志中,可以方便查询. 在nginx中事情就变成了这样:nginx只对 ...

  4. C语言和其他语言的区别

    一.嵌入式开发中为什么选择C语言? 首先嵌入式是在已有的硬件基础上,移植操作系统,而现在操作系统的内核都是用C实现的 二.为什么用C语言开发操作系统内核? C语言有三大特点(优点): ①C语言具有出色 ...

  5. 使用opencv和numpy实现矩阵相乘和按元素相乘 matrix multiplication vs element-wise multiplication

    本文首发于个人博客https://kezunlin.me/post/1e37a6/,欢迎阅读最新内容! opencv and numpy matrix multiplication vs elemen ...

  6. 使用cJSON库解析和构建JSON字符串

    使用cJSON库解析和构建JSON字符串 前言 其实之前的两篇博文已经介绍了json格式和如何使用cJSON库来解析JSON: 使用cJSON库解析JSON JSON简介 当时在MCU平台上使用时,会 ...

  7. PHP程序执行的过程原理

    为了以后能开发PHP扩展,就一定要了解PHP的执行顺序.这篇文章就是为C开发PHP扩展做铺垫. Web环境我们假设为Apache.在编译PHP的时候,为了能够让Apache支持PHP,我们会生成一个m ...

  8. MVC邮箱验证

    post请求 [HttpPost] public void Email(Models.Email m,string Txt) { if (Txt!= Session["yzm"]. ...

  9. MySQL入门——Linux下安装后的配置文件

    MySQL入门——Linux下安装后的配置文件 摘要:本文主要了解了在Linux环境下安装MySQL后的配置文件的位置,以及如何创建配置文件. 查看配置文件的加载顺序 找到mysqld的路径 通过wh ...

  10. 应届生offer指南

    通用技术 1.一般公司对应届生都要考察编程能力,所以应聘之前先刷刷题.我做面试官出的编程题两年没有变过.就是这道