4

Session::get例如,由于某种原因,我们需要在类似处执行自定义逻辑,如果它得到一个 null 值,则在将 null 返回给调用者之前执行其他操作。

我们在这里查看了扩展会话,但我们需要覆盖的处理程序位于vendor/laravel/framework/src/Illuminate/Session/Store.phpwith 方法get

那么,实现方法覆盖的推荐方法getvendor/laravel/framework/src/Illuminate/Session/Store.php什么?

4

2 回答 2

2

您可以创建自己的SessionServiceProvider、扩展Illuminate\Support\ServiceProvider\SessionServiceProvider和覆盖registerSessionDriver(),以返回商店类的自定义实例。

然后Illuminate\Support\ServiceProvider\SessionServiceProvider在 config/app.php 中注释并添加您的自定义SessionServiceProvider.

一个工作示例:https ://gist.github.com/thiagorb/d4f4afaafa23a7a564b5675db952fbb2

于 2018-01-02T08:16:44.180 回答
1

您可以创建自己的session()like helper:

function sessionCheck($value)
{
    if (is_null(session($value))) {
        // Do something
    }

    return session($value);
}

或者覆盖现有的。

于 2018-01-02T08:13:26.440 回答