‪TYPO3CMS  ‪main
Typo3XmlSerializerOptions.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
19 
24 {
25  public const ‪INCLUDE_ROOT_NODE = 'include_root_node';
26  public const ‪IGNORED_NODE_TYPES = 'ignored_node_types';
27  public const ‪LOAD_OPTIONS = 'load_options';
28  public const ‪NAMESPACE_PREFIX = 'namespace_prefix';
29  public const ‪ALLOW_UNDEFINED_NAMESPACES = 'allow_undefined_namespaces';
30  public const ‪RETURN_ROOT_NODE_NAME = 'return_root_node_name';
31 
32  protected array ‪$options = [
33  // Ignore XML node types when converting to a PHP array.
34  self::IGNORED_NODE_TYPES => [\XML_PI_NODE, \XML_COMMENT_NODE],
35  // Use the XML root node or its children as the first level of the PHP array.
36  self::INCLUDE_ROOT_NODE => false,
37  // Apply these libxml2 options when loading the XML.
38  self::LOAD_OPTIONS => \LIBXML_NONET | \LIBXML_NOBLANKS,
39  // Remove this XML namespace from each XML node, for example "T3:".
40  self::NAMESPACE_PREFIX => '',
41  // Gracefully handle missing namespace declarations, for example <T3:T3FlexForms> without xmlns attribute.
42  self::ALLOW_UNDEFINED_NAMESPACES => false,
43  // Append the name of the XML root node to the PHP array key "_DOCUMENT_TAG".
44  self::RETURN_ROOT_NODE_NAME => false,
45  ];
46 
47  public function ‪__construct(array ‪$options = [])
48  {
49  $this->options = array_merge($this->options, ‪$options);
50  }
51  public function ‪getLoadOptions(): int
52  {
53  return $this->options[‪self::LOAD_OPTIONS];
54  }
55  public function ‪getIgnoredNodeTypes(): array
56  {
57  return $this->options[‪self::IGNORED_NODE_TYPES];
58  }
59  public function ‪includeRootNode(): bool
60  {
61  return $this->options[‪self::INCLUDE_ROOT_NODE];
62  }
63  public function ‪hasNamespacePrefix(): bool
64  {
65  return $this->options[‪self::NAMESPACE_PREFIX] !== '';
66  }
67  public function ‪getNamespacePrefix(): string
68  {
69  return $this->options[‪self::NAMESPACE_PREFIX];
70  }
71  public function ‪allowUndefinedNamespaces(): bool
72  {
73  return $this->options[‪self::ALLOW_UNDEFINED_NAMESPACES];
74  }
75  public function ‪returnRootNodeName(): bool
76  {
77  return $this->options[‪self::RETURN_ROOT_NODE_NAME];
78  }
79 }
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\getIgnoredNodeTypes
‪getIgnoredNodeTypes()
Definition: Typo3XmlSerializerOptions.php:55
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions
Definition: Typo3XmlSerializerOptions.php:24
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\$options
‪array $options
Definition: Typo3XmlSerializerOptions.php:32
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\RETURN_ROOT_NODE_NAME
‪const RETURN_ROOT_NODE_NAME
Definition: Typo3XmlSerializerOptions.php:30
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\hasNamespacePrefix
‪hasNamespacePrefix()
Definition: Typo3XmlSerializerOptions.php:63
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\IGNORED_NODE_TYPES
‪const IGNORED_NODE_TYPES
Definition: Typo3XmlSerializerOptions.php:26
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\returnRootNodeName
‪returnRootNodeName()
Definition: Typo3XmlSerializerOptions.php:75
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\ALLOW_UNDEFINED_NAMESPACES
‪const ALLOW_UNDEFINED_NAMESPACES
Definition: Typo3XmlSerializerOptions.php:29
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\INCLUDE_ROOT_NODE
‪const INCLUDE_ROOT_NODE
Definition: Typo3XmlSerializerOptions.php:25
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\allowUndefinedNamespaces
‪allowUndefinedNamespaces()
Definition: Typo3XmlSerializerOptions.php:71
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\includeRootNode
‪includeRootNode()
Definition: Typo3XmlSerializerOptions.php:59
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\getNamespacePrefix
‪getNamespacePrefix()
Definition: Typo3XmlSerializerOptions.php:67
‪TYPO3\CMS\Core\Serializer
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\LOAD_OPTIONS
‪const LOAD_OPTIONS
Definition: Typo3XmlSerializerOptions.php:27
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\NAMESPACE_PREFIX
‪const NAMESPACE_PREFIX
Definition: Typo3XmlSerializerOptions.php:28
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\__construct
‪__construct(array $options=[])
Definition: Typo3XmlSerializerOptions.php:47
‪TYPO3\CMS\Core\Serializer\Typo3XmlSerializerOptions\getLoadOptions
‪getLoadOptions()
Definition: Typo3XmlSerializerOptions.php:51