修改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 相关文章推荐
php中ob(Output Buffer 输出缓冲)函数使用方法
Jul 21 PHP
php mssql 分页SQL语句优化 持续影响
Apr 26 PHP
将博客园(cnblogs.com)数据导入到wordpress的代码
Jan 06 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
Jun 05 PHP
PHP制作万年历
Jan 07 PHP
php生成图片验证码
Jun 09 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
php实现的后台表格分页功能示例
Oct 23 PHP
PHP连接sftp并下载文件的方法教程
Aug 26 PHP
yii2 url重写并隐藏index.php方法
Dec 10 PHP
PHP goto语句用法实例
Aug 06 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 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
用PHP实现WEB动态网页静态
2006/10/09 PHP
php smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
PHP中PCRE正则解析代码详解
2019/04/26 PHP
显示、隐藏密码
2006/07/01 Javascript
javascript 异常处理使用总结
2009/06/21 Javascript
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
2010/06/19 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
JS关闭窗口或JS关闭页面的几种代码分享
2013/10/25 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
用JavaScript实现使用鼠标画线的示例代码
2014/08/19 Javascript
AngularJS入门心得之directive和controller通信过程
2016/01/25 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
2016/03/11 Javascript
JS实现登录页面记住密码和enter键登录方法推荐
2016/05/10 Javascript
微信小程序获取循环元素id以及wx.login登录操作
2017/08/17 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
jQuery AJAX与jQuery事件的分析讲解
2019/02/18 jQuery
详解webpack 最简打包结果分析
2019/02/20 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
Vue 数据绑定的原理分析
2020/11/16 Javascript
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
python实现指定ip端口扫描方式
2019/12/17 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
css3 中的新特性加强记忆详解
2016/04/16 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
终端业务员岗位职责
2013/11/27 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
乡镇党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2015年英语教学工作总结
2015/05/25 职场文书
html+css实现分层金字塔的实例
2021/06/02 HTML / CSS
关于redisson缓存序列化几枚大坑说明
2021/08/04 Redis
PHP RabbitMQ消息列队
2022/05/11 PHP