| author | cavaliet |
| Fri, 24 Jan 2014 17:50:24 +0100 | |
| changeset 106 | c1477ecf55e3 |
| parent 18 | c85b9d1ddf19 |
| permissions | -rw-r--r-- |
|
18
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
1 |
<?php |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
2 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
3 |
/* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
4 |
* This file is part of Mandango. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
5 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
6 |
* (c) Pablo Díez <pablodip@gmail.com> |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
7 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
8 |
* This source file is subject to the MIT license that is bundled |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
9 |
* with this source code in the file LICENSE. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
10 |
*/ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
11 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
12 |
namespace Mandango\Mondator; |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
13 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
14 |
/** |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
15 |
* Container of definitions. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
16 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
17 |
* @author Pablo Díez <pablodip@gmail.com> |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
18 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
19 |
* @api |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
20 |
*/ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
21 |
class Container implements \ArrayAccess, \Countable, \IteratorAggregate |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
22 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
23 |
private $definitions; |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
24 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
25 |
/** |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
26 |
* Constructor. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
27 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
28 |
* @api |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
29 |
*/ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
30 |
public function __construct() |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
31 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
32 |
$this->definitions = array(); |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
33 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
34 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
35 |
/** |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
36 |
* Returns if a definition name exists. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
37 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
38 |
* @param string $name The definition name. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
39 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
40 |
* @return bool Returns if the definition name exists. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
41 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
42 |
* @api |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
43 |
*/ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
44 |
public function hasDefinition($name) |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
45 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
46 |
return isset($this->definitions[$name]); |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
47 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
48 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
49 |
/** |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
50 |
* Set a definition. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
51 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
52 |
* @param string $name The definition name. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
53 |
* @param Mandango\Mondator\Definition $definition The definition. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
54 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
55 |
* @api |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
56 |
*/ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
57 |
public function setDefinition($name, Definition $definition) |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
58 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
59 |
$this->definitions[$name] = $definition; |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
60 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
61 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
62 |
/** |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
63 |
* Set the definitions. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
64 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
65 |
* @param array $definitions An array of definitions. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
66 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
67 |
* @api |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
68 |
*/ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
69 |
public function setDefinitions(array $definitions) |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
70 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
71 |
$this->definitions = array(); |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
72 |
foreach ($definitions as $name => $definition) { |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
73 |
$this->setDefinition($name, $definition); |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
74 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
75 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
76 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
77 |
/** |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
78 |
* Returns a definition by name. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
79 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
80 |
* @param string $name The definition name. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
81 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
82 |
* @return Mandango\Mondator\Definition The definition. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
83 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
84 |
* @throws \InvalidArgumentException If the definition does not exists. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
85 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
86 |
* @api |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
87 |
*/ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
88 |
public function getDefinition($name) |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
89 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
90 |
if (!$this->hasDefinition($name)) { |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
91 |
throw new \InvalidArgumentException(sprintf('The definition "%s" does not exists.', $name)); |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
92 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
93 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
94 |
return $this->definitions[$name]; |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
95 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
96 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
97 |
/** |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
98 |
* Returns the definitions. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
99 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
100 |
* @return arary The definitions. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
101 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
102 |
* @api |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
103 |
*/ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
104 |
public function getDefinitions() |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
105 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
106 |
return $this->definitions; |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
107 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
108 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
109 |
/** |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
110 |
* Remove a definition |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
111 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
112 |
* @param string $name The definition name |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
113 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
114 |
* @throws \InvalidArgumentException If the definition does not exists. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
115 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
116 |
* @api |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
117 |
*/ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
118 |
public function removeDefinition($name) |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
119 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
120 |
if (!$this->hasDefinition($name)) { |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
121 |
throw new \InvalidArgumentException(sprintf('The definition "%s" does not exists.', $name)); |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
122 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
123 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
124 |
unset($this->definitions[$name]); |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
125 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
126 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
127 |
/** |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
128 |
* Clear the definitions. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
129 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
130 |
* @api |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
131 |
*/ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
132 |
public function clearDefinitions() |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
133 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
134 |
$this->definitions = array(); |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
135 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
136 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
137 |
/* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
138 |
* \ArrayAccess interface. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
139 |
*/ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
140 |
public function offsetExists($name) |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
141 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
142 |
return $this->hasDefinition($name); |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
143 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
144 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
145 |
public function offsetSet($name, $definition) |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
146 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
147 |
$this->setDefinition($name, $definition); |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
148 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
149 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
150 |
public function offsetGet($name) |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
151 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
152 |
return $this->getDefinition($name); |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
153 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
154 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
155 |
public function offsetUnset($name) |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
156 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
157 |
$this->removeDefinition($name); |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
158 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
159 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
160 |
/** |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
161 |
* Returns the number of definitions (implements the \Countable interface). |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
162 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
163 |
* @return integer The number of definitions. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
164 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
165 |
* @api |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
166 |
*/ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
167 |
public function count() |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
168 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
169 |
return count($this->definitions); |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
170 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
171 |
|
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
172 |
/** |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
173 |
* Returns an \ArrayIterator with the definitions (implements \IteratorAggregate interface). |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
174 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
175 |
* @return \ArrayIterator An \ArrayIterator with the definitions. |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
176 |
* |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
177 |
* @api |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
178 |
*/ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
179 |
public function getIterator() |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
180 |
{ |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
181 |
return new \ArrayIterator($this->definitions); |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
182 |
} |
|
c85b9d1ddf19
first implementation of dynamic fields
ymh <ymh.work@gmail.com>
parents:
diff
changeset
|
183 |
} |