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

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

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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 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年前 评论

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