Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 16766 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 www 1
<?php
2
 
3
declare(strict_types=1);
4
 
5
namespace LeadersLinked\Handler;
6
 
7
use Laminas\Db\Adapter\AdapterInterface;
8
use Laminas\Log\LoggerInterface;
9
use LeadersLinked\Mapper\SessionMapper;
10
use Laminas\Session\SaveHandler\SaveHandlerInterface;
11
 
12
 
13
class SessionHandler implements SaveHandlerInterface
14
{
15
 
16
    /**
17
     *
18
     * @var SessionMapper
19
     */
20
    private $sessionMapper;
21
 
22
    /**
23
     *
24
     * @var string
25
     */
26
    private $session_name;
27
 
28
    /**
29
     *
30
     * @var int
31
     */
32
    private $session_lifetime;
33
 
34
    /**
35
     *
36
     * @param AdapterInterface $adapter
37
     * @param LoggerInterface $logger
38
     * @param int $session_lifetime
39
     */
40
    public function __construct(AdapterInterface $adapter, LoggerInterface $logger, int $session_lifetime)
41
    {
42
        $this->sessionMapper = SessionMapper::getInstance($adapter, $logger);
43
        $this->session_lifetime = $session_lifetime;
44
    }
45
 
46
    public function open ($save_path, $session_name)
47
    {
48
        $this->session_name = $session_name;
49
        return true;
50
    }
51
 
52
 
53
    public function close()
54
    {
55
        return true;
56
    }
57
 
58
 
59
    public function read($session_id)
60
    {
61
        $session = $this->sessionMapper->fetchOne($session_id);
62
        if($session){
63
            return $session->data;
64
        }else{
65
            return '';
66
        }
67
    }
68
 
69
    public function write($session_id, $session_data)
70
    {
71
        $session = $this->read($session_id);
72
        if($session) {
73
            return $this->sessionMapper->update($session_id, $session_data);
74
        } else {
75
            return $this->sessionMapper->insert($session_id, $this->session_name, $session_data, $this->session_lifetime);
76
        }
77
    }
78
 
79
 
80
    public function destroy($session_id)
81
    {
82
        return $this->sessionMapper->delete($session_id);
83
    }
84
 
85
 
86
    public function gc($maxlifetime)
87
    {
88
        return $this->sessionMapper->deleteAllExpired($maxlifetime);
89
    }
90
}