Proyectos de Subversion LeadersLinked - Backend

Rev

Autoría | Ultima modificación | Ver Log |

<?php

declare(strict_types=1);

namespace LeadersLinked\Handler;

use Laminas\Db\Adapter\AdapterInterface;
use Laminas\Log\LoggerInterface;
use LeadersLinked\Mapper\SessionMapper;
use Laminas\Session\SaveHandler\SaveHandlerInterface;
use SessionHandlerInterface;


class SessionCacheHandler implements SaveHandlerInterface
{

    /**
     * 
     * @var \LeadersLinked\Cache\CacheInterface
     */
    private $cache;

    
    /**
     * 
     * @param \LeadersLinked\Cache\CacheInterface
     * @param int $session_lifetime
     */
    public function __construct($cache)
    {
        $this->cache = $cache;
    }
    
    /**
     * 
     * {@inheritDoc}
     * @see SessionHandlerInterface::close()
     */
    public function close() : bool
    {
        return true;
    }
    
    /**
     * 
     * {@inheritDoc}
     * @see SessionHandlerInterface::destroy()
     */
    public function destroy(string $id) : bool 
    {
        $this->cache->removeItem($id);
        return true;
    }
    
    /**
     * 
     * {@inheritDoc}
     * @see SessionHandlerInterface::gc()
     */
    public function gc(int $max_lifetime) : int 
    {
       return 0;

    }
    
    /**
     * 
     * {@inheritDoc}
     * @see SessionHandlerInterface::open()
     */
    public function open(string $path, string $name) : bool
    {
        return true;
    }
    
    /**
     * 
     * {@inheritDoc}
     * @see SessionHandlerInterface::read()
     */
    public function read(string $id) : string
    {
        return $this->cache->getItem($id);
    }
    
    /**
     * 
     * {@inheritDoc}
     * @see SessionHandlerInterface::write()
     */
    public function write(string $id, string $data) : bool
    {
        return $this->cache->setItem($id, $data);
    }
    

}