ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
functions.php
Go to the documentation of this file.
1 <?php
2 
4 
8 
41 function enum(Writer $writer, array $values) {
42 
43  foreach ($values as $value) {
44  $writer->writeElement($value);
45  }
46 }
47 
61 function valueObject(Writer $writer, $valueObject, $namespace) {
62  foreach (get_object_vars($valueObject) as $key => $val) {
63  if (is_array($val)) {
64  // If $val is an array, it has a special meaning. We need to
65  // generate one child element for each item in $val
66  foreach ($val as $child) {
67  $writer->writeElement('{' . $namespace . '}' . $key, $child);
68  }
69 
70  } elseif ($val !== null) {
71  $writer->writeElement('{' . $namespace . '}' . $key, $val);
72  }
73  }
74 }
75 
76 
97 function repeatingElements(Writer $writer, array $items, $childElementName) {
98 
99  foreach ($items as $item) {
100  $writer->writeElement($childElementName, $item);
101  }
102 
103 }
104 
164 function standardSerializer(Writer $writer, $value) {
165 
166  if (is_scalar($value)) {
167 
168  // String, integer, float, boolean
169  $writer->text($value);
170 
171  } elseif ($value instanceof XmlSerializable) {
172 
173  // XmlSerializable classes or Element classes.
174  $value->xmlSerialize($writer);
175 
176  } elseif (is_object($value) && isset($writer->classMap[get_class($value)])) {
177 
178  // It's an object which class appears in the classmap.
179  $writer->classMap[get_class($value)]($writer, $value);
180 
181  } elseif (is_callable($value)) {
182 
183  // A callback
184  $value($writer);
185 
186  } elseif (is_null($value)) {
187 
188  // nothing!
189 
190  } elseif (is_array($value) && array_key_exists('name', $value)) {
191 
192  // if the array had a 'name' element, we assume that this array
193  // describes a 'name' and optionally 'attributes' and 'value'.
194 
195  $name = $value['name'];
196  $attributes = isset($value['attributes']) ? $value['attributes'] : [];
197  $value = isset($value['value']) ? $value['value'] : null;
198 
199  $writer->startElement($name);
200  $writer->writeAttributes($attributes);
201  $writer->write($value);
202  $writer->endElement();
203 
204  } elseif (is_array($value)) {
205 
206  foreach ($value as $name => $item) {
207 
208  if (is_int($name)) {
209 
210  // This item has a numeric index. We just loop through the
211  // array and throw it back in the writer.
212  standardSerializer($writer, $item);
213 
214  } elseif (is_string($name) && is_array($item) && isset($item['attributes'])) {
215 
216  // The key is used for a name, but $item has 'attributes' and
217  // possibly 'value'
218  $writer->startElement($name);
219  $writer->writeAttributes($item['attributes']);
220  if (isset($item['value'])) {
221  $writer->write($item['value']);
222  }
223  $writer->endElement();
224 
225  } elseif (is_string($name)) {
226 
227  // This was a plain key-value array.
228  $writer->startElement($name);
229  $writer->write($item);
230  $writer->endElement();
231 
232  } else {
233 
234  throw new InvalidArgumentException('The writer does not know how to serialize arrays with keys of type: ' . gettype($name));
235 
236  }
237  }
238 
239  } elseif (is_object($value)) {
240 
241  throw new InvalidArgumentException('The writer cannot serialize objects of class: ' . get_class($value));
242 
243  } else {
244 
245  throw new InvalidArgumentException('The writer cannot serialize values of type: ' . gettype($value));
246 
247  }
248 
249 }
if($err=$client->getError()) $namespace
Objects implementing XmlSerializable can control how they are represented in Xml. ...
repeatingElements(Writer $writer, array $items, $childElementName)
This serializer helps you serialize xml structures that look like this:
Definition: functions.php:97
startElement($name)
Opens a new element.
Definition: Writer.php:121
valueObject(Writer $writer, $valueObject, $namespace)
The valueObject serializer turns a simple PHP object into a classname.
Definition: functions.php:61
standardSerializer(Writer $writer, $value)
This function is the &#39;default&#39; serializer that is able to serialize most things, and delegates to oth...
Definition: functions.php:164
$values
if(array_key_exists('yes', $_REQUEST)) $attributes
Definition: getconsent.php:85
writeAttributes(array $attributes)
Writes a list of attributes.
Definition: Writer.php:211
write($value)
Writes a value to the output stream.
Definition: Writer.php:98
$key
Definition: croninfo.php:18
writeElement($name, $content=null)
Write a full element tag and it&#39;s contents.
Definition: Writer.php:189
The XML Writer class.
Definition: Writer.php:31