修改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 相关文章推荐
加强版phplib的DB类
Mar 31 PHP
php smarty的预保留变量总结
Dec 04 PHP
CURL状态码列表(详细)
Jun 27 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
Jul 02 PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 PHP
Laravel框架表单验证详解
Sep 04 PHP
codeigniter中view通过循环显示数组数据的方法
Mar 20 PHP
ThinkPHP数据操作方法总结
Sep 28 PHP
php时间计算相关问题小结
May 09 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
YII框架关联查询操作示例
Apr 29 PHP
Yii框架日志操作图文与实例详解
Sep 09 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的explode和implode的使用说明
2011/07/17 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
查找php配置文件php.ini所在路径的二种方法
2014/05/26 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
PHP实现文件下载断点续传详解
2014/10/15 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
网页开发中的容易忽略的问题 javascript HTML中的table
2009/04/15 Javascript
Jquery Ajax学习实例 向页面发出请求,返回XML格式数据
2010/03/14 Javascript
引用外部js乱码问题分析及解决方案
2013/04/12 Javascript
批量实现面向对象的实例代码
2013/07/01 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
基于javascript实现九宫格大转盘效果
2020/05/28 Javascript
JS组件Bootstrap Select2使用方法解析
2016/05/30 Javascript
layui-laydate时间日历控件使用方法详解
2018/11/15 Javascript
详解vue之自行实现派发与广播(dispatch与broadcast)
2021/01/19 Vue.js
Python中获取网页状态码的两个方法
2014/11/03 Python
在Python中使用sort()方法进行排序的简单教程
2015/05/21 Python
python如何让类支持比较运算
2018/03/20 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
windows下python安装pip方法详解
2020/02/10 Python
Python中bisect的用法及示例详解
2020/07/20 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
python读取excel数据并且画图的实现示例
2021/02/08 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
css3 transform 3d 使用css3创建动态3d立方体(html5实践)
2013/01/06 HTML / CSS
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
学生发电厂实习自我鉴定
2013/09/22 职场文书
历史专业个人求职信范文
2013/12/07 职场文书
气象学专业个人求职信
2014/04/22 职场文书
社区志愿者活动方案
2014/08/18 职场文书
2016年“12.4”法制宣传日活动总结
2016/04/01 职场文书
MySQL为id选择合适的数据类型
2021/06/07 MySQL