Laravel 中一些全局性的数据 该如何共享与传递

比方说 用户登录信息. 又或者简单的 $time = time() 这样的时间戳

这类数据 往往是在项目启动初始 就已经初始化好的. 如果在后续的service或controller层中去读取到这些变量.
像, 如果我用一个中间件 处理了一些必要的初始化数据. 在其他层,包括view. 中该如何去得到它.

我看了大部分github上的项目都是直接存储在session中. 可恰巧项目打算弃用session.
目前能想到的是存放到$app容器下. 但感觉不是一个好的方案

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 9
Summer

好多种方法,框架没有统一,可以自由选用,个人觉得没有最好,合理,自己统一起来就行

7年前 评论

来的单例?给个名字?CommonData ? GlobalData ? ... 任何你喜欢的名字,在 AppServiceProvider 里面注册绑定好,全局任何地方调用都一样了。你觉得这个方式怎么样?

// AppServiceProvider
 public function register()
 {
        $this->app->singleton(GlobalData::class, function () {
            return GlobalData::create([
                # 你初始化的内容
                'time' => time(),
            ]);
        });
}
7年前 评论

@zhuzhichao 无论是provider中给 还是 直接在容器中bind进去 个人感觉都太重了. 不是实现不了.
@Summer 我就是好奇大家是怎么做的. 难道phphub没有在初始化时做一些数据准备么. 比方说UA, 时间戳, setting(DB里获取的) 等

7年前 评论

@NauxLiu 有意思. 我才注意到cache有这个驱动.

7年前 评论
Alex89

@NauxLiu 你就是天才。

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!