修改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支持页面回退的两种方法[转]
Feb 14 PHP
window+nginx+php环境配置 附配置搭配说明
Dec 29 PHP
优化PHP程序的方法小结
Feb 23 PHP
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 PHP
php进行支付宝开发中return_url和notify_url的区别分析
Dec 22 PHP
64位windows系统下安装Memcache缓存
Dec 06 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
Dec 24 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
Feb 23 PHP
非常经典的PHP文件上传类分享
May 15 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
PHP开发APP端微信支付功能
Feb 17 PHP
删除PHP数组中的重复元素的实现代码
Apr 10 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 GD 图像处理组件的常用函数总结
2010/04/28 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
2019/04/10 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
2015/01/18 Javascript
js实现的牛顿摆效果
2015/03/31 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
使用jQuery操作HTML的table表格的实例解析
2016/03/13 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
Node.js 文件夹目录结构创建实例代码
2016/07/08 Javascript
TypeScript学习之强制类型的转换
2016/12/27 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
JS实现按钮颜色切换效果
2020/09/05 Javascript
jQuery实现的简单图片轮播效果完整示例
2018/02/08 jQuery
讲解vue-router之命名路由和命名视图
2018/05/28 Javascript
Nodejs实现爬虫抓取数据实例解析
2018/07/05 NodeJs
vue+axios 前端实现的常用拦截的代码示例
2018/08/23 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
layui表格 列自动适应大小失效的解决方法
2019/09/06 Javascript
Python中编写ORM框架的入门指引
2015/04/29 Python
Python+Opencv识别两张相似图片
2020/03/23 Python
Python向日志输出中添加上下文信息
2017/05/24 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
pytorch实现查看当前学习率
2020/06/24 Python
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
J2EE面试题
2016/03/14 面试题
设备动力科岗位职责范本
2014/02/23 职场文书
篝火晚会主持词
2014/03/25 职场文书
银行领导班子四风对照检查材料
2014/09/27 职场文书
党员带头倡议书
2015/04/29 职场文书
使用python求解迷宫问题的三种实现方法
2022/03/17 Python