修改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模板之Phpbean的目录结构
Jan 10 PHP
PHP读取ACCESS数据到MYSQL的代码
May 11 PHP
php通过文件流方式复制文件的方法
Mar 13 PHP
PHP会话处理的10个函数
Aug 11 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
php事件驱动化设计详解
Nov 10 PHP
php 如何禁用eval() 函数实例详解
Dec 01 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
Apr 27 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
PHP实现的多进程控制demo示例
Jul 22 PHP
Laravel中Kafka的使用详解
Mar 24 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 数组二分法查找函数代码
2010/02/16 PHP
浅析Yii中使用RBAC的完全指南(用户角色权限控制)
2013/06/20 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
2015/06/06 PHP
php获取、检查类名、函数名、方法名的函数方法
2015/06/25 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
PHP的Json中文处理解决方案
2016/09/29 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
jquery实现手机发送验证码的倒计时代码
2014/02/12 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
xmlplus组件设计系列之按钮(2)
2017/04/26 Javascript
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
js类的继承定义与用法分析
2019/06/21 Javascript
[02:10]探秘浦东源深体育馆 DOTA2 Supermajor不见不散
2018/05/17 DOTA
Python牛刀小试密码爆破
2011/02/03 Python
Python 2.7.x 和 3.x 版本的重要区别小结
2014/11/28 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
Python实现连接MySql数据库及增删改查操作详解
2019/04/16 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
Python:slice与indices的用法
2019/11/25 Python
Python 字符串池化的前提
2020/07/03 Python
解析python 类方法、对象方法、静态方法
2020/08/15 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
利用Bootstrap实现漂亮简洁的CSS3价格表实例源码
2017/03/02 HTML / CSS
历史系自荐信范文
2013/12/24 职场文书
秘书专业自荐信范文
2013/12/26 职场文书
护士在校生自荐信
2014/02/01 职场文书
新品发布会主持词
2014/04/02 职场文书
国家助学金感谢信
2015/01/21 职场文书
工程服务质量承诺书
2015/04/29 职场文书
圣诞晚会主持词
2015/07/01 职场文书