修改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 相关文章推荐
VML绘图板②脚本--VMLgraph.js、XMLtool.js
Oct 09 PHP
php max_execution_time执行时间问题
Jul 17 PHP
php提示Call-time pass-by-reference has been deprecated in的解决方法[已测]
May 06 PHP
深入PHP操作MongoDB的技术总结
Jun 02 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
PHP实现过滤各种HTML标签
May 17 PHP
joomla数据库操作示例代码
Jan 06 PHP
PHP序列化操作方法分析
Sep 28 PHP
php实现将base64格式图片保存在指定目录的方法
Oct 13 PHP
php一个文件搞定微信jssdk配置
Dec 12 PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 PHP
在Yii2特定页面如何禁用调试工具栏Debug Toolbar详解
Aug 07 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+HTML+JavaScript+Css实现简单爬虫开发
2016/03/28 PHP
PHP实现查询手机归属地的方法详解
2017/04/28 PHP
CakePHP框架Model函数定义方法示例
2017/08/04 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
javascript 鼠标滚轮事件
2009/04/09 Javascript
jquery validate poshytip 自定义样式
2012/11/26 Javascript
一些老手都不一定知道的JavaScript技巧
2014/05/06 Javascript
jQuery实现查找最近父节点的方法
2016/06/23 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
2016/10/27 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
2016/11/07 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
jquery在vue脚手架中的使用方式示例
2017/08/29 jQuery
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
2018/08/17 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
BootStrap table实现表格行拖拽效果
2018/12/01 Javascript
深入了解js原型模式
2019/05/30 Javascript
vue组件实现移动端九宫格转盘抽奖
2020/10/16 Javascript
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
pycharm 在windows上编辑代码用linux执行配置的方法
2018/10/27 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
python 自动批量打开网页的示例
2019/02/21 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
Python random模块制作简易的四位数验证码
2020/02/01 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
怎样在程序里获得一个空指针
2015/01/24 面试题
介绍一下MD5加密算法
2016/11/12 面试题
技术总监岗位职责
2013/12/05 职场文书
国际贸易毕业生求职信范文
2014/02/21 职场文书
初中学生期末评语
2014/04/24 职场文书
2015年清明节演讲稿范文
2015/03/17 职场文书
uniapp 微信小程序 自定义tabBar 导航
2022/04/22 Javascript