修改Laravel5.3中的路由文件与路径


Posted in PHP onAugust 10, 2016

前言

大家可能没有注意到, 在 Laravel 4 以及更老版本中, 路由逻辑是性能上的一个瓶颈--特别是对于有很多路由定义的应用而言. 一个只有几百条路由定义的 Laravel 站点, 框架光注册路由就需要半秒多的时间. 不过以后不用担心这个问题了, 因为 Laravel 5 引入了 路由缓存(route caching), 可以大大优化路由的性能(闭包方式定义的路由不能缓存, 所以该把所有的闭包路由定义都移到控制器中了).

1、回顾Laravel 5.2中路由的修改
在 Laravel 5.2 的routes.php中我们可以看到路由被分割成两个路由群组:web和api,这样做的原因是基于中间件群组的理念:开箱即可拥有web和api两组路由。

web路由组提供了普通web用户所需的所有功能特性:如session、cookie、CSRF防护等等,相比之下,api路由组更加轻量级,只提供了throttle中间件,以便提供无状态的REST API。

2、Laravel 5.3 中路由的修改

在Laravel 5.3中,app/Http/routes.php文件被移动到routes目录下,并且被分割成两个文件:web.php和api.php。你可能已经猜到了,web.php中的路由应用了web中间件组,而api.php中的路由应用了api中间件组。

这样做有一些好处,首先,我们实现了web路由和api路由的分离,其次,可以在应用级层面组织多个路由文件,最后,将routes移出app目录,对新手而言,可以更快访问到routes目录,并且让app目录完全成为PSR-4自动加载的目录。

如果你想要自定义或者添加自己的独立路由文件,参考App\Providers\RouteServiceProvider获取思路:

...
public function map()
{
 $this->mapWebRoutes();
 $this->mapApiRoutes();
 //
}

protected function mapWebRoutes()
{
 Route::group([
  'namespace' => $this->namespace, 
  'middleware' => 'web',
 ], function ($router) {
  require base_path('routes/web.php');
 });
}

protected function mapApiRoutes()
{
 Route::group([
  'middleware' => ['api', 'auth:api'],
  'namespace' => $this->namespace,
  'prefix' => 'api',
 ], function ($router) {
  require base_path('routes/api.php');
 });
}

总结

很简单吧,参照这段代码应该可以很轻松创建自己独立的路由文件。以上就是修改Laravel5.3中路由文件及路径的全部内容,希望本文对大家学习Laravel5.3有所帮助。

PHP 相关文章推荐
一个查看session内容的函数
Oct 09 PHP
帖几个PHP的无限分类实现想法~
Jan 02 PHP
PHP中的extract的作用分析
Apr 09 PHP
C# Assembly类访问程序集信息
Jun 13 PHP
PHP 写文本日志实现代码
May 18 PHP
php中引用符号(&)的使用详解
Nov 13 PHP
php获取文件大小的方法
Feb 26 PHP
php mysql 封装类实例代码
Sep 18 PHP
老生常谈php 正则中的i,m,s,x,e分别表示什么
Mar 02 PHP
php简单构造json多维数组的方法示例
Jun 08 PHP
thinkPHP5实现数据库添加内容的方法
Oct 25 PHP
php数值计算num类简单操作示例
May 15 PHP
Yii2中关联查询简单用法示例
Aug 10 #PHP
Yii2实现让关联字段支持搜索功能的方法
Aug 10 #PHP
Yii2实现同时搜索多个字段的方法
Aug 10 #PHP
Yii2实现上下联动下拉框功能的方法
Aug 10 #PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 #PHP
教你在header中隐藏php的版本信息
Aug 10 #PHP
PHP通过加锁实现并发情况下抢码功能
Aug 10 #PHP
You might like
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
php用正则表达式匹配URL的简单方法
2013/11/12 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
php猴子选大王问题解决方法
2015/05/12 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
Laravel 中创建 Zip 压缩文件并提供下载的实现方法
2019/04/02 PHP
Js+Jq获取URL参数的集中方法示例代码
2014/05/20 Javascript
动态读取JSON解析键值对的方法
2014/06/03 Javascript
JavaScript原生对象之String对象的属性和方法详解
2015/03/13 Javascript
JS验证字符串功能
2017/02/22 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
python中mechanize库的简单使用示例
2014/01/10 Python
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
python抓取文件夹的所有文件
2018/02/27 Python
解决python执行不输出系统命令弹框的问题
2019/06/24 Python
python批量图片处理简单示例
2019/08/06 Python
一行Python代码过滤标点符号等特殊字符
2019/08/12 Python
python中的数组赋值与拷贝的区别详解
2019/11/26 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
酒店副总岗位职责
2013/12/24 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
检讨书格式
2015/05/07 职场文书
生产车间管理制度
2015/08/04 职场文书
汽车销售员工作总结
2015/08/12 职场文书
导游词之潮音寺
2019/09/26 职场文书
Oracle创建只读账号的详细步骤
2021/06/07 Oracle
详解如何用Python实现感知器算法
2021/06/18 Python