Newer
Older
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
<?php
/**
* This file contains QUI\ERP\Accounting\ArticleList
*/
namespace QUI\ERP\Accounting;
/**
* Class ArticleListUnique
* Nicht änderbare Artikel Liste
*
* @package QUI\ERP\Accounting
*/
class ArticleListUnique
{
/**
* @var array
*/
protected $articles = array();
/**
* ArticleList constructor.
*
* @param array $attributes
*/
public function __construct($attributes = array())
{
$articles = $attributes['articles'];
foreach ($articles as $article) {
$this->articles[] = new Article($article);
}
}
/**
* Creates a list from a stored representation
*
* @param string $data
* @return ArticleListUnique
*/
public static function unserialize($data)
{
if (is_string($data)) {
$data = json_decode($data, true);
}
return new self($data);
}
/**
* Generates a storable representation of the list
*
* @return string
*/
public function serialize()
{
return json_encode($this->toArray());
}
/**
* Return the list as an array
*
* @return array
*/
public function toArray()
{
$articles = array_map(function ($Article) {
/* @var $Article Article */
return $Article->toArray();
}, $this->articles);
return array(
'articles' => $articles
);
}
/**
* Generates a storable json representation of the list
* Alias for serialize()
*
* @return string
*/
public function toJSON()
{
return $this->serialize();
}
}