如何覆盖Session :: get?

时间:2018-01-02 08:10:40

标签: laravel session laravel-5.3 laravel-session

我们需要在var options = { url: 'http://your_url', timeout: 120000 // you can set this value as per your needs } request(options, function(err, resp, body) {}); 执行自定义逻辑,例如,出于某种原因,如果它获得null值,则在将null返回给调用者之前执行其他操作。

我们看一下扩展会话here,但我们需要覆盖的处理程序位于Session::get方法vendor/laravel/framework/src/Illuminate/Session/Store.php

那么,在get实现覆盖方法get的推荐方法是什么?

2 个答案:

答案 0 :(得分:2)

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

然后在config / app.php中评论{{1}}并添加自定义{{1}}。

一个工作示例:HISTFILE

答案 1 :(得分:1)

你可以create你自己的session()帮手:

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

    return session($value);
}

或覆盖现有的。