blob: 10d35d78faf5b5904b7cbaf8ae4237fc134a6888 (
plain)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
<?php
namespace Wcms;
use DateTime;
use DateTimeImmutable;
use DateTimeZone;
abstract class Item
{
public function hydrate($datas = [])
{
$error = 0;
foreach ($datas as $key => $value) {
$method = 'set' . $key;
if (method_exists($this, $method)) {
if($this->$method($value) === false) {
$error ++;
}
}
}
if ($error > 0) {
return false;
} else {
return true;
}
}
public function dry()
{
$array = [];
foreach ($this as $var => $value) {
$array[$var] = $this->$var();
}
return $array;
}
/**
* Return any asked vars and their values of an object as associative array
*
* @param array $vars list of vars
* @return array Associative array `$var => $value`
*/
public function drylist(array $vars) : array
{
$array = [];
foreach ($vars as $var) {
if (property_exists($this, $var))
$array[$var] = $this->$var;
}
return $array;
}
/**
* Tool for accessing different view of the same DateTimeImmutable var
*
* @param string $property DateTimeImmutable var to access
* @param string $option
*
* @return mixed string or false if propriety does not exist
*/
protected function datetransform(string $property, string $option = 'date')
{
if(property_exists($this, $property)) {
if ($option == 'string') {
return $this->$property->format(DateTime::ISO8601);
} elseif ($option == 'date' || $option == 'sort') {
return $this->$property;
} elseif ($option == 'hrdi') {
$now = new DateTimeImmutable(null, timezone_open("Europe/Paris"));
return hrdi($this->$property->diff($now));
} elseif ($option == 'pdate') {
return $this->$property->format('Y-m-d');
} elseif ($option == 'ptime') {
return $this->$property->format('H:i');
} elseif ($option = 'dmy') {
return $this->$property->format('d/m/Y');
}
} else {
return false;
}
}
}
?>
|