修改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 采集程序中常用的函数
Dec 09 PHP
php中拷贝构造函数、赋值运算符重载
Jul 25 PHP
关于shopex同步ucenter的redirect问题,导致script不运行
Apr 10 PHP
php中读写文件与读写数据库的效率比较分享
Oct 19 PHP
将酷狗krc歌词解析并转换为lrc歌词php源码
Jun 20 PHP
ThinkPHP模板比较标签用法详解
Jun 30 PHP
PHP中使用sleep造成mysql读取失败的案例和解决方法
Aug 21 PHP
PHP实现图片旋转效果实例代码
Oct 01 PHP
PHP、Java des加密解密实例
Apr 27 PHP
php实现源代码加密的方法
Jul 11 PHP
php实现无限级分类(递归方法)
Aug 06 PHP
PHP智能识别收货地址信息实例
Jan 05 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强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php中判断数组相等的方法以及数组运算符介绍
2015/03/30 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
jquery validate.js表单验证的基本用法入门
2010/05/13 Javascript
随鼠标移动的时钟非常漂亮遗憾的是只支持IE
2014/08/12 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
jQuery实现Table表格隔行变色及高亮显示当前选择行效果示例
2017/02/14 Javascript
HTML的select控件美化
2017/03/27 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
详解用node编写自己的cli工具
2017/05/23 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
详解如何理解vue的key属性
2019/04/14 Javascript
Vue中全局变量的定义和使用
2019/06/05 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
微信小程序全选多选效果实现代码解析
2020/01/21 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
Python利用Nagios增加微信报警通知的功能
2016/02/18 Python
基于python log取对数详解
2018/06/08 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
Python编译成.so文件进行加密后调用的实现
2019/12/23 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
Html5新特性用canvas标签画多条直线附效果截图
2014/06/30 HTML / CSS
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
西班牙电子产品购物网站:Electronicamente
2018/07/26 全球购物
意大利宠物用品购物网站:Bauzaar
2018/09/15 全球购物
《三亚落日》教学反思
2014/04/26 职场文书
在职员工证明书
2014/09/19 职场文书
2015年班主任个人工作总结
2015/03/31 职场文书
学校运动会感想
2015/08/10 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis
ES6 解构赋值的原理及运用
2021/05/25 Javascript