关于Laravel 全局数据的处理

php中文网
发布: 2016-09-08 08:43:50
原创
1702人浏览过

laravel中, 我们可能通过中间件来处理auth信息, 也可能设计到一些业务逻辑的处理

这些数据在中间件中处理后, 应该存放到哪里?
比方说 userObject 这样的对象, 又或者只是一个变量. 后续的逻辑(service层, model层, view层)都可能用到.
那在中间件中获取,处理后的数据, 应该放在哪里. (一次请求中)

不使用框架时, 通常会随便定义一个超级变量 在存放. MVC中似乎不太建议使用全局变量来处理. 那在laravel中, 通常是放在哪里呢?

腾讯智影-AI数字人
腾讯智影-AI数字人

基于AI数字人能力,实现7*24小时AI数字人直播带货,低成本实现直播业务快速增增,全天智能在线直播

腾讯智影-AI数字人 73
查看详情 腾讯智影-AI数字人

我知道可以存放在session app容器下. 但是感觉不是最佳的方案.

回复内容:

laravel中, 我们可能通过中间件来处理auth信息, 也可能设计到一些业务逻辑的处理

这些数据在中间件中处理后, 应该存放到哪里?
比方说 userObject 这样的对象, 又或者只是一个变量. 后续的逻辑(service层, model层, view层)都可能用到.
那在中间件中获取,处理后的数据, 应该放在哪里. (一次请求中)

不使用框架时, 通常会随便定义一个超级变量 在存放. MVC中似乎不太建议使用全局变量来处理. 那在laravel中, 通常是放在哪里呢?

我知道可以存放在session app容器下. 但是感觉不是最佳的方案.

中间件只是用来过滤请求/响应的管道,数据该存数据库那就上Eloquent或者直接用DB facade,该存session就存session......

存在内存中。比如当前用户,当你调用 Auth::user 或其他跟当前认证用户有关的代码时,就可能会触发对应的 UserModel 去取用户对象,如果本次 request 中还没有生成,就去从数据库或缓存中取然后一直存在本次请求的内存中。
所有其他的变量、provider、binding、依赖注入、别名等等都是这个逻辑。而且具有很灵活的加载方式,以提高性能。比如路由、配置的缓存和加载,比如defer。

这一套是基于 Laravel 的一个核心东西:容器(container)。官方文档都是最开始就讲了这些理念,文档见 Core Concepts

Laravel 可定制的 bootstrap 启动流程中,一般第一个就是加载 Application,这就是一个大容器。你可以在任意地方 dd(app()) 查看当前 app 中的数据加载情况。

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号