修改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中支持多种编码的中文字符串截取函数!
Mar 20 PHP
攻克CakePHP系列三 表单数据增删改
Oct 22 PHP
简单的php 验证图片生成函数
May 21 PHP
php 代码优化的42条建议 推荐
Sep 25 PHP
用PHP书写安全的脚本代码
Feb 05 PHP
php获取表单中多个同名input元素的值
Mar 20 PHP
thinkphp实现like模糊查询实例
Oct 29 PHP
php判断并删除空目录及空子目录的方法
Feb 11 PHP
Java和PHP在Web开发方面对比分析
Mar 01 PHP
php通过ksort()函数给关联数组按照键排序的方法
Mar 18 PHP
使用PHP如何实现高效安全的ftp服务器(一)
Dec 20 PHP
visual studio code 调试php方法(图文详解)
Sep 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
PHP新手上路(九)
2006/10/09 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
jquery实现ajax提交form表单的方法总结
2014/03/03 Javascript
JavaScript中的正则表达式简明总结
2014/04/04 Javascript
node.js下when.js 的异步编程实践
2014/12/03 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
整理关于Bootstrap过渡动画的慕课笔记
2017/03/29 Javascript
Js利用Canvas实现图片压缩功能
2017/09/13 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
NodeJs实现简易WEB上传下载服务器
2019/08/10 NodeJs
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
vue实现tab栏点击高亮效果
2020/08/19 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
高效使用Python字典的清单
2018/04/04 Python
python bmp转换为jpg 并删除原图的方法
2018/10/25 Python
python打包exe开机自动启动的实例(windows)
2019/06/28 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
Python run()函数和start()函数的比较和差别介绍
2020/05/03 Python
为什么说python适合写爬虫
2020/06/11 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
加拿大最大的体育用品、鞋类和服装零售商:Sport Chek
2018/11/29 全球购物
迎八一活动主题
2014/01/31 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
小学生环保倡议书
2014/05/15 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
鼋头渚导游词
2015/02/05 职场文书
销售开票员岗位职责
2015/04/15 职场文书
关于运动会的广播稿
2015/08/19 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书
2019年12月24日平安夜祝福语集锦
2019/12/24 职场文书
《废话连篇——致新手》——chinapizza
2022/04/05 无线电
Golang 入门 之url 包
2022/05/04 Golang