Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

| 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\Mapper;
6
 
7
use LeadersLinked\Model\Session;
8
use LeadersLinked\Mapper\Common\MapperCommon;
9
use Laminas\Db\Adapter\AdapterInterface;
10
use Laminas\Log\LoggerInterface;
11
 
12
 
13
class  SessionMapper extends MapperCommon
14
{
15
    const _TABLE = 'tbl_sessions';
16
 
17
 
18
    /**
19
     *
20
     * @var SessionMapper
21
     */
22
    private static $_instance;
23
 
24
    /**
25
     *
26
     * @param AdapterInterface $adapter
27
     */
28
    private function __construct($adapter)
29
    {
30
        parent::__construct($adapter);
31
    }
32
 
33
    /**
34
     *
35
     * @param AdapterInterface $adapter
36
     * @return \LeadersLinked\Mapper\SessionMapper
37
     */
38
    public static function getInstance($adapter)
39
    {
40
        if(self::$_instance == null) {
41
            self::$_instance = new SessionMapper($adapter);
42
        }
43
        return self::$_instance;
44
    }
45
 
46
    /**
47
     *
48
     * @param string $id
49
     * @return Session
50
     */
51
    public function fetchOne($id)
52
    {
53
        $prototype = new Session();
54
        $select = $this->sql->select(self::_TABLE);
55
        $select->where->equalTo('id', $id);
56
 
57
        return $this->executeFetchOneObject($select, $prototype);
58
    }
59
 
60
    /**
61
     *
62
     * @param string $id
63
     * @param string $name
64
     * @param string $data
65
     * @param int $lifetime
66
     * @return boolean
67
     */
68
    public function insert($id, $name, $data, $lifetime)
69
    {
70
        $values = [
71
            'id' => $id,
72
            'name' => $name,
73
            'data' => $data,
74
            'modified' => time(),
75
            'lifetime' => $lifetime,
76
        ];
77
 
78
        $insert = $this->sql->insert(self::_TABLE);
79
        $insert->values($values);
80
 
81
        return $this->executeInsert($insert);
82
 
83
    }
84
 
85
    /**
86
     *
87
     * @param string $id
88
     * @param string $data
89
     * @return boolean
90
     */
91
    public function update($id, $data)
92
    {
93
        $values = [
94
            'data' => $data,
95
            'modified' => time()
96
        ];
97
 
98
         $update = $this->sql->update(self::_TABLE);
99
         $update->set($values);
100
         $update->where->equalTo('id', $id);
101
 
102
         return $this->executeUpdate($update);
103
    }
104
 
105
    /**
106
     *
107
     * @param string $id
108
     * @return boolean
109
     */
110
    public function delete($id)
111
    {
112
        $delete = $this->sql->delete(self::_TABLE);
113
        $delete->where->equalTo('id', $id);
114
 
115
        return $this->executeDelete($delete);
116
    }
117
 
118
    /**
119
     *
120
     * @param int $maxlifetime
121
     * @return boolean
122
     */
123
    public function deleteAllExpired($maxlifetime)
124
    {
125
        $sql = ' DELETE FROM `' . self::_TABLE  . '` WHERE (`modified` + `lifetime`) < ? ';
126
        return $this->executeSentenceWithParameters($sql, [$maxlifetime]);
127
    }
128
}