-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathLindaRowModel.php
71 lines (51 loc) · 1.36 KB
/
LindaRowModel.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
namespace solutionstack\Linda;
class LindaRowModel
{
private $model_fields = array();
private $altered_fields = array();
public function __construct($column, $data)
{
for ($i = 0; $i < count($column); $i++) {
$this->model_fields[$column[$i]] = current($data);
next($data); //move the internal pointer to the next index
}
}
public function __get($name)
{
if (array_key_exists($name, $this->model_fields)) {
return $this->model_fields[$name];
}
return null;
}
public function __set($name, $value)
{
if (array_key_exists($name, $this->model_fields)) {
$this->model_fields[$name] = $value;
$this->altered_fields[$name] = $value;
}
}
protected function hasKey($name)
{
if (array_key_exists($name, $this->model_fields)) {
return true;
}
}
public function getValues()
{
return array_values($this->model_fields);
}
public function getValuesAsObject()
{
$r = new \stdClass();
foreach ($this->model_fields as $key => $value) {
$r->{$key} = $value;
}
return $r;
}
public function __destruct()
{
$this->model_fields = array();
$this->altered_fields = array();
}
}