修改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 相关文章推荐
基于Snoopy的PHP近似完美获取网站编码的代码
Oct 23 PHP
PHP函数之日期时间函数date()使用详解
Sep 09 PHP
PHP获取网页标题的3种实现方法代码实例
Apr 11 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
php数组转成json格式的方法
Mar 09 PHP
php获取图片信息的方法详解
Dec 10 PHP
Laravel SQL语句记录方式(推荐)
May 26 PHP
深入分析PHP优化及注意事项
Jul 04 PHP
Linux系统中为php添加pcntl扩展
Aug 28 PHP
php源码 fsockopen获取网页内容实例详解
Sep 24 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
Feb 18 PHP
php中yii框架实例用法
Dec 22 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 cookie使用方法学习笔记分享
2013/11/07 PHP
PHP链表操作简单示例
2016/10/15 PHP
jquery 插件 人性化的消息显示
2008/01/21 Javascript
jQuery的实现原理的模拟代码 -4 重要的扩展函数 extend
2010/08/03 Javascript
window.location不跳转的问题解决方法
2014/04/17 Javascript
JS实现光滑展开合拢的菜单效果代码
2015/09/16 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
AngularJS转换响应内容
2016/01/27 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
js canvas实现放大镜查看图片功能
2017/06/08 Javascript
webpack学习笔记之代码分割和按需加载的实例详解
2017/07/20 Javascript
详解vue-cil和webpack中本地静态图片的路径问题解决方案
2017/09/27 Javascript
JS设计模式之状态模式概念与用法分析
2018/02/05 Javascript
基于vue,vue-router, vuex及addRoutes进行权限控制问题
2018/05/02 Javascript
小程序日历控件使用方法详解
2018/12/29 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
jQuery表单校验插件validator使用方法详解
2020/02/18 jQuery
JS异步宏队列微队列原理详解
2020/09/09 Javascript
[03:08]Ti4观战指南上
2014/07/07 DOTA
在Django框架中编写Contact表单的教程
2015/07/17 Python
Python selenium文件上传方法汇总
2020/11/19 Python
详解python的数字类型变量与其方法
2016/11/20 Python
Python程序退出方式小结
2017/12/09 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
基于Python爬取素材网站音频文件
2020/10/21 Python
Boda Skins皮衣官网:奢侈皮夹克,全球配送
2016/12/15 全球购物
匡威德国官网:Converse德国
2019/01/26 全球购物
Abbacino官网:包、钱包和女士配饰
2019/04/15 全球购物
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
二年级体育教学反思
2014/01/15 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
2014年公司庆元旦活动方案
2014/03/05 职场文书
初中英语课后反思
2014/04/25 职场文书
催款通知书范文
2015/04/17 职场文书
小学运动会宣传稿
2015/07/23 职场文书