ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
class.arConnectorSession.php
Go to the documentation of this file.
1<?php
2require_once('class.arConnector.php');
3require_once(dirname(__FILE__) . '/../Exception/class.arException.php');
4
12{
13 const AR_CONNECTOR_SESSION = 'arConnectorSession';
14
15
16 public static function resetSession()
17 {
19 }
20
21
25 public static function getSession()
26 {
27 if (!$_SESSION[self::AR_CONNECTOR_SESSION]) {
29 }
30
32 }
33
34
40 public static function getSessionForActiveRecord(ActiveRecord $ar)
41 {
43 $ar_session = $session[$ar::returnDbTableName()];
44 if (!is_array($ar_session)) {
45 $ar_session = array();
46 }
47
48 return $ar_session;
49 }
50
51
57 public function checkConnection(ActiveRecord $ar)
58 {
59 return is_array(self::getSession());
60 }
61
62
68 public function nextID(ActiveRecord $ar)
69 {
70 return count(self::getSessionForActiveRecord($ar)) + 1;
71 }
72
73
80 public function installDatabase(ActiveRecord $ar, $fields)
81 {
82 return self::resetDatabase($ar);
83 }
84
85
91 public function updateDatabase(ActiveRecord $ar)
92 {
93 return true;
94 }
95
96
102 public function resetDatabase(ActiveRecord $ar)
103 {
104 $_SESSION[self::AR_CONNECTOR_SESSION][$ar::returnDbTableName()] = array();
105
106 return true;
107 }
108
109
115 public function truncateDatabase(ActiveRecord $ar)
116 {
117 return self::resetDatabase($ar);
118 }
119
120
126 public function checkTableExists(ActiveRecord $ar)
127 {
128 return is_array(self::getSessionForActiveRecord($ar));
129 }
130
131
138 public function checkFieldExists(ActiveRecord $ar, $field_name)
139 {
141
142 return array_key_exists($field_name, $session[0]);
143 }
144
145
153 public function removeField(ActiveRecord $ar, $field_name)
154 {
155 return true;
156 }
157
158
167 public function renameField(ActiveRecord $ar, $old_name, $new_name)
168 {
169 return true;
170 }
171
172
176 public function create(ActiveRecord $ar)
177 {
178 $_SESSION[self::AR_CONNECTOR_SESSION][$ar::returnDbTableName()][$ar->getPrimaryFieldValue()] = $ar->__asStdClass();
179 }
180
181
187 public function read(ActiveRecord $ar)
188 {
190
191 return array( $session[$ar->getPrimaryFieldValue()] );
192 }
193
194
198 public function update(ActiveRecord $ar)
199 {
200 self::create($ar);
201 }
202
203
207 public function delete(ActiveRecord $ar)
208 {
209 unset($_SESSION[self::AR_CONNECTOR_SESSION][$ar::returnDbTableName()][$ar->getPrimaryFieldValue()]);
210 }
211
212
220 public function readSet(ActiveRecordList $arl)
221 {
223 foreach ($session as $i => $s) {
224 $session[$i] = (array) $s;
225 }
226 foreach ($arl->getArWhereCollection()->getWheres() as $w) {
227 $fieldname = $w->getFieldname();
228 $v = $w->getValue();
229 $operator = $w->getOperator();
230
231 foreach ($session as $i => $s) {
232 $session[$i] = (array) $s;
233 switch ($operator) {
234 case '=':
235 if ($s[$fieldname] != $v) {
236 unset($session[$i]);
237 }
238 break;
239 }
240 }
241 }
242
243 return $session;
244 }
245
246
252 public function affectedRows(ActiveRecordList $arl)
253 {
254 return count($this->readSet($arl));
255 }
256
257
264 public function quote($value, $type)
265 {
266 return $value;
267 }
268
269
273 public function updateIndices(ActiveRecord $ar)
274 {
275 // TODO: Implement updateIndices() method.
276 }
277}
$_SESSION["AccountId"]
Class ActiveRecordList.
Class ActiveRecord.
An exception for terminatinating execution or to throw for unit testing.
Class arConnectorSession.
checkFieldExists(ActiveRecord $ar, $field_name)
updateDatabase(ActiveRecord $ar)
updateIndices(ActiveRecord $ar)
affectedRows(ActiveRecordList $arl)
checkConnection(ActiveRecord $ar)
readSet(ActiveRecordList $arl)
removeField(ActiveRecord $ar, $field_name)
truncateDatabase(ActiveRecord $ar)
renameField(ActiveRecord $ar, $old_name, $new_name)
resetDatabase(ActiveRecord $ar)
installDatabase(ActiveRecord $ar, $fields)
static getSessionForActiveRecord(ActiveRecord $ar)
checkTableExists(ActiveRecord $ar)
Class arConnector.
$i
Definition: metadata.php:24
$type
$session