Как переопределить Session::get?
Нам нужно сделать собственную логику в Session::get
как например, по какой-то причине, если он получает нулевое значение, сделайте что-нибудь еще, прежде чем возвращать нулевое значение вызывающей стороне.
Мы рассмотрели расширение сеанса здесь, но обработчик, который нам нужно переопределить, находится в vendor/laravel/framework/src/Illuminate/Session/Store.php
с методом get
Итак, каков рекомендуемый способ достижения переопределения метода get
в vendor/laravel/framework/src/Illuminate/Session/Store.php
?
2 ответа
Вы можете создать свой собственный SessionServiceProvider
, расширяя Illuminate\Support\ServiceProvider\SessionServiceProvider
и переопределить registerSessionDriver()
для того, чтобы вернуть пользовательский экземпляр класса магазина.
Затем прокомментируйте Illuminate\Support\ServiceProvider\SessionServiceProvider
в config / app.php и добавьте свой кастом SessionServiceProvider
,
Рабочий пример: https://gist.github.com/thiagorb/d4f4afaafa23a7a564b5675db952fbb2
Вы можете создать свой собственный session()
как помощник:
function sessionCheck($value)
{
if (is_null(session($value))) {
// Do something
}
return session($value);
}
Или переопределить существующий.