修改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 相关文章推荐
建立动态的WML站点(一)
Oct 09 PHP
关于PHP堆栈与列队的学习
Jun 21 PHP
php不使用插件导出excel的简单方法
Mar 04 PHP
PHP中imagick函数的中文解释
Jan 21 PHP
PHP实现文件上传和多文件上传
Dec 24 PHP
ThinkPHP静态缓存简单配置和使用方法详解
Mar 23 PHP
thinkphp框架下404页面设置 仅三步
May 14 PHP
ThinkPHP使用Ueditor的方法详解
May 20 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
May 27 PHP
php arsort 数组降序排序详细介绍
Nov 17 PHP
PHP ADODB生成下拉列表框功能示例
May 29 PHP
php7 错误处理机制修改实例分析
May 25 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 函数语法介绍一
2009/06/14 PHP
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/03 Javascript
document.getElementById的简写方式(获取id对象的简略写法)
2010/09/10 Javascript
javscript对象原型的一些看法
2010/09/19 Javascript
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
jquery教程限制文本框只能输入数字和小数点示例分享
2014/01/13 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
javascript:void(0)点击登录没反应怎么解决
2015/11/13 Javascript
Bootstrap学习笔记之css样式设计(2)
2016/06/07 Javascript
jQuery事件绑定用法详解
2016/09/08 Javascript
javascript防篡改对象实例详解
2017/04/10 Javascript
BetterScroll 在移动端滚动场景的应用
2017/09/18 Javascript
jQuery实现右侧抽屉式在线客服功能
2017/12/25 jQuery
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
[56:45]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第一局
2016/02/28 DOTA
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
Flask框架的学习指南之用户登录管理
2016/11/20 Python
利用python实现命令行有道词典的方法示例
2017/01/31 Python
python的unittest测试类代码实例
2017/12/07 Python
解决python3捕获cx_oracle抛出的异常错误问题
2018/10/18 Python
python 的 scapy库,实现网卡收发包的例子
2019/07/23 Python
PyTorch之图像和Tensor填充的实例
2019/08/18 Python
python实现把二维列表变为一维列表的方法分析
2019/10/08 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
Html5剪切板功能的实现代码
2018/06/29 HTML / CSS
中科前程Java笔试题
2016/11/20 面试题
2014年便民服务中心工作总结
2014/12/20 职场文书
2015年体育教师个人工作总结
2015/05/12 职场文书
百家讲坛观后感
2015/06/12 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
创业计划书之网络外卖
2019/10/31 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL