修改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 18 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
如何让搜索引擎抓取AJAX内容解决方案
Aug 25 PHP
php实现的SESSION类
Dec 02 PHP
yii2.0之GridView自定义按钮和链接用法
Dec 15 PHP
PHP中使用array函数新建一个数组
Nov 19 PHP
PHP发送AT指令实例代码
May 26 PHP
PHP 数组基本操作方法详解
Jun 17 PHP
php操作xml并将其插入数据库的实现方法
Sep 08 PHP
mysql alter table命令修改表结构实例详解
Sep 24 PHP
PHP 闭包详解及实例代码
Sep 28 PHP
yii2中dropDownList实现二级和三级联动写法
Apr 26 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 Google的translate API代码
2008/12/10 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
2012/12/21 PHP
php数组生成html下拉列表的方法
2015/07/20 PHP
浅谈laravel aliases别名的原理
2019/10/24 PHP
js判断变量是否空值的代码
2008/10/26 Javascript
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
jquery实现文字由下到上循环滚动的实例代码
2013/08/09 Javascript
7个JS基础知识总结
2014/03/05 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
JS 正则表达式验证密码、邮箱格式的实例代码
2018/10/28 Javascript
Bootstarp在pycharm中的安装及简单的使用方法
2019/04/19 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
layui-table表复选框勾选的所有行数据获取的例子
2019/09/13 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
2020/09/02 Javascript
[01:36:57]【09DOTA2第一视角】小骷髅
2014/04/16 DOTA
Python实现端口复用实例代码
2014/07/03 Python
Python中的两个内置模块介绍
2015/04/05 Python
浅析Python四种数据类型
2018/09/26 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
pycharm使用技巧之自动调整代码格式总结
2020/11/04 Python
HTML5本地存储之Web Storage应用介绍
2013/01/06 HTML / CSS
HTML5通过调用canvas对象的getContext()方法来获取绘图环境
2014/06/23 HTML / CSS
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
什么是网络协议
2016/04/07 面试题
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
小饰品店的创业计划书范文
2013/12/28 职场文书
办理退休介绍信
2014/01/09 职场文书
敬老文明号事迹材料
2014/01/16 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
教师年度考核评语
2014/04/28 职场文书
总经理助理岗位职责
2015/01/31 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
学雷锋主题班会教案
2015/08/13 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书