Вход Регистрация
Файл: gapps/vendor/laravel/framework/src/Illuminate/Session/CookieSessionHandler.php
Строк: 101
<?php

namespace IlluminateSession;

use 
CarbonCarbon;
use 
SessionHandlerInterface;
use 
SymfonyComponentHttpFoundationRequest;
use 
IlluminateContractsCookieQueueingFactory as CookieJar;

class 
CookieSessionHandler implements SessionHandlerInterface
{
    
/**
     * The cookie jar instance.
     *
     * @var IlluminateContractsCookieFactory
     */
    
protected $cookie;

    
/**
     * The request instance.
     *
     * @var SymfonyComponentHttpFoundationRequest
     */
    
protected $request;

    
/**
     * Create a new cookie driven handler instance.
     *
     * @param  IlluminateContractsCookieQueueingFactory  $cookie
     * @param  int  $minutes
     * @return void
     */
    
public function __construct(CookieJar $cookie$minutes)
    {
        
$this->cookie $cookie;
        
$this->minutes $minutes;
    }

    
/**
     * {@inheritdoc}
     */
    
public function open($savePath$sessionName)
    {
        return 
true;
    }

    
/**
     * {@inheritdoc}
     */
    
public function close()
    {
        return 
true;
    }

    
/**
     * {@inheritdoc}
     */
    
public function read($sessionId)
    {
        
$value $this->request->cookies->get($sessionId) ?: '';

        if (! 
is_null($decoded json_decode($valuetrue)) && is_array($decoded)) {
            if (isset(
$decoded['expires']) && time() <= $decoded['expires']) {
                return 
$decoded['data'];
            }
        }

        return 
'';
    }

    
/**
     * {@inheritdoc}
     */
    
public function write($sessionId$data)
    {
        
$this->cookie->queue($sessionIdjson_encode([
            
'data' => $data,
            
'expires' => Carbon::now()->addMinutes($this->minutes)->getTimestamp(),
        ]), 
$this->minutes);
    }

    
/**
     * {@inheritdoc}
     */
    
public function destroy($sessionId)
    {
        
$this->cookie->queue($this->cookie->forget($sessionId));
    }

    
/**
     * {@inheritdoc}
     */
    
public function gc($lifetime)
    {
        return 
true;
    }

    
/**
     * Set the request instance.
     *
     * @param  SymfonyComponentHttpFoundationRequest  $request
     * @return void
     */
    
public function setRequest(Request $request)
    {
        
$this->request $request;
    }
}
Онлайн: 1
Реклама