Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 6749 | 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
class SessionHandler implements SaveHandlerInterface
13
{
14
 
15
    /**
16
     *
17
     * @var SessionMapper
18
     */
19
    private $sessionMapper;
20
 
21
    /**
22
     *
23
     * @var string
24
     */
25
    private $session_name;
26
 
27
    /**
28
     *
29
     * @var int
30
     */
31
    private $session_lifetime;
32
 
33
    /**
34
     *
35
     * @param AdapterInterface $adapter
36
     * @param LoggerInterface $logger
37
     * @param int $session_lifetime
38
     */
39
    public function __construct(AdapterInterface $adapter, LoggerInterface $logger, int $session_lifetime)
40
    {
41
        $this->sessionMapper = SessionMapper::getInstance($adapter, $logger);
42
        $this->session_lifetime = $session_lifetime;
43
    }
44
 
45
    public function open ($save_path, $session_name)
46
    {
47
        $this->session_name = $session_name;
48
        return true;
49
    }
50
 
51
 
52
    public function close()
53
    {
54
        return true;
55
    }
56
 
57
 
58
    public function read($session_id)
59
    {
60
        $session = $this->sessionMapper->fetchOne($session_id);
61
        if($session){
62
            return $session->data;
63
        }else{
64
            return '';
65
        }
66
    }
67
 
68
    public function write($session_id, $session_data)
69
    {
70
        $session = $this->read($session_id);
71
        if($session) {
72
            return $this->sessionMapper->update($session_id, $session_data);
73
        } else {
74
            return $this->sessionMapper->insert($session_id, $this->session_name, $session_data, $this->session_lifetime);
75
        }
76
    }
77
 
78
 
79
    public function destroy($session_id)
80
    {
81
        return $this->sessionMapper->delete($session_id);
82
    }
83
 
84
 
85
    public function gc($maxlifetime)
86
    {
87
        return $this->sessionMapper->deleteAllExpired($maxlifetime);
88
    }
89
}