PluginProbe ʕ •ᴥ•ʔ
MailPoet – Newsletters, Email Marketing, and Automation / 5.35.1
MailPoet – Newsletters, Email Marketing, and Automation v5.35.1
5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 4.44.0 4.44.1 4.45.0 4.46.0 4.47.0 4.48.0 4.48.1 4.48.2 4.49.0 4.49.1 4.5.0 4.5.1 4.5.2 4.50.0 4.50.1 4.51.0 4.51.1 4.51.2 4.52.0 4.53.0 4.54.0 4.55.0 4.56.0 4.57.0 4.58.0 4.58.1 4.58.2 4.6.0 4.6.1 4.6.2 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 5.0.0 5.0.1 5.0.2 5.1.0 5.1.1 5.10.0 5.10.1 5.11.0 5.12.0 5.12.1 5.12.10 5.12.11 5.12.12 5.12.13 5.12.2 5.12.3 5.12.4 5.12.5 5.12.6 5.12.7 5.12.8 5.12.9 5.13.0 5.13.1 5.13.2 5.14.0 5.14.1 5.14.2 5.14.3 5.15.0 5.15.1 5.16.0 5.16.1 5.16.2 5.16.3 5.16.4 5.17.0 5.17.1 5.17.2 5.17.3 5.17.4 5.17.5 5.17.6 5.18.0 5.19.0 5.2.0 5.2.1 5.2.2 5.2.3 5.20.0 5.21.0 5.21.1 5.21.2 5.21.3 5.22.0 5.22.1 5.22.2 5.22.3 5.22.4 5.23.0 5.23.1 5.23.2 5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7 5.4.0 5.4.1 5.4.2 5.5.0 5.5.1 5.5.2 5.6.0 5.6.1 5.6.2 5.6.3 5.6.4 5.7.0 5.7.1 5.8.0 5.8.1 5.9.0 3.0.0-beta.15 3.7.1 3.0.0-beta.16 3.7.2 3.0.0-beta.17 3.7.3 3.0.0-beta.18 3.7.4 3.0.0-beta.19 3.7.5 3.0.0-beta.2 3.7.6 3.0.0-beta.20 3.7.8 3.0.0-beta.21 3.70.0 3.0.0-beta.22 3.71.0 3.0.0-beta.23 3.71.1 3.0.0-beta.23.1 3.71.2 3.0.0-beta.23.2 3.71.3 3.0.0-beta.24 3.72.0 3.0.0-beta.25 3.73.0 3.0.0-beta.26 3.73.1 3.0.0-beta.27 3.73.2 3.0.0-beta.28 3.74.0 3.0.0-beta.29 3.74.1 3.0.0-beta.3 3.74.2 3.0.0-beta.30 3.74.3 3.0.0-beta.31 3.75.0 3.0.0-beta.32 3.75.1 3.0.0-beta.33 3.76.0 3.0.0-beta.33.1 3.77.0 3.0.0-beta.34.0.0 3.77.1 3.0.0-beta.36.0.0 3.78.0 3.0.0-beta.36.0.1 3.79.0 3.0.0-beta.36.2.0 3.8 3.0.0-beta.36.3.0 3.8.1 3.0.0-beta.36.3.1 3.8.2 3.0.0-beta.37.0.0 3.8.3 3.0.0-beta.4 3.8.4 3.0.0-beta.5 3.8.5 3.0.0-beta.6 3.8.6 3.0.0-beta.7 3.80.0 3.0.0-beta.7.1 3.81.0 3.0.0-beta.8 3.82.0 3.0.0-beta.9 3.83.0 3.0.0-rc.1.0.0 3.84.0 3.0.0-rc.1.0.1 3.84.1 3.0.0-rc.1.0.2 3.85.0 3.0.0-rc.1.0.3 3.85.1 3.0.0-rc.1.0.4 3.86.0 3.0.0-rc.2.0.0 3.87.0 3.0.0-rc.2.0.1 3.87.1 3.0.0-rc.2.0.2 3.87.2 3.0.0-rc.2.0.3 3.88.0 3.0.1 3.88.1 3.0.2 3.88.2 3.0.3 3.89.0 3.0.4 3.89.1 3.0.5 3.89.2 3.0.6 3.89.3 3.0.7 3.89.4 3.0.8 3.9.0 3.0.9 3.9.1 3.1.0 3.90.0 3.10 3.90.1 3.10.1 3.90.2 3.100.0 3.91.0 3.100.1 3.91.1 3.100.2 3.92.0 3.101.0 3.92.1 3.101.1 3.93.0 3.102.0 3.93.1 3.102.1 3.94.0 3.103.0 3.95.0 3.103.1 3.95.1 3.11.0 3.96.0 3.11.1 3.96.1 3.11.2 3.97.0 3.11.3 3.98.0 3.11.4 3.98.1 3.11.5 3.99.0 3.12.0 3.99.1 3.12.1 4.0.0 3.13.0 4.0.1 3.14.0 4.1.0 3.14.1 4.1.1 3.15.0 4.10.0 3.16.0 4.11.0 3.16.1 4.11.1 3.16.2 4.12.0 3.16.3 4.12.1 3.17.0 4.12.2 3.17.1 4.13.0 3.17.2 4.14.0 3.18.0 4.15.0 3.18.1 4.16.0 3.18.2 4.17.0 3.19.0 4.17.1 3.19.1 4.18.0 3.19.2 4.18.1 3.19.3 4.19.0 3.2.0 4.2.0 3.2.1 4.20.0 3.2.2 4.20.1 3.2.3 4.20.2 3.2.4 4.21.0 3.2.5 4.22.0 3.20.0 4.22.1 3.21.0 4.22.2 3.21.1 4.23.0 3.22.0 4.24.0 3.23.0 4.25.0 3.23.1 4.26.0 3.23.2 4.26.1 3.24.0 4.27.0 3.25.0 4.28.0 3.25.1 4.29.0 3.26.0 4.3.0 3.26.1 4.3.1 3.27.0 4.30.0 3.28.0 4.31.0 3.29.0 4.31.1 3.3.0 4.32.0 3.3.1 4.33.0 3.3.2 4.34.0 3.3.3 4.35.0 3.3.4 4.35.1 3.3.5 4.36.0 3.3.6 4.37.0 3.30.0 4.38.0 3.31.0 4.39.0 3.31.1 4.4.0 3.32.0 4.40.0 3.32.1 4.41.0 3.32.2 4.41.1 3.33.0 4.41.2 3.34.0 4.41.3 3.34.1 4.42.0 3.34.2 4.42.1 3.34.3 3.34.4 3.35.0 3.35.1 3.35.3 3.35.4 3.36.0 3.37.0 3.37.1 3.37.2 3.37.3 3.38.0 3.38.1 3.39.0 3.39.1 3.39.2 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.40.0 3.40.1 3.41.0 3.41.1 3.41.2 3.42.0 3.42.1 3.42.2 3.42.3 3.43.0 3.43.1 3.44.0 3.45.0 3.45.1 3.46.0 3.46.1 3.46.10 3.46.11 3.46.12 3.46.13 3.46.14 3.46.2 3.46.3 3.46.4 3.46.5 3.46.6 3.46.7 3.46.8 3.46.9 3.47.0 3.47.1 3.47.10 3.47.11 3.47.2 3.47.3 3.47.5 3.47.6 3.47.7 3.47.9 3.48.0 3.48.1 3.49.0 3.49.1 3.5.0 3.5.1 3.50.0 3.51.0 3.51.1 3.51.2 3.52.0 3.53.0 3.54.0 3.54.1 3.54.2 3.54.3 3.55.0 3.55.1 3.56.0 3.56.1 3.56.2 3.57.0 3.57.1 3.58.0 3.59.0 3.59.1 3.59.2 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 3.6.6 3.6.7 3.60.0 3.60.1 3.60.10 3.60.11 3.60.12 3.60.2 3.60.3 3.60.4 3.60.6 3.60.7 3.60.8 3.60.9 3.61.0 3.62.0 3.62.1 3.63.0 3.64.0 3.64.1 3.64.2 3.64.3 3.65.0 trunk 3.65.1 3.0.0 3.66.0 3.0.0-beta.1 3.67.0 3.0.0-beta.10 3.67.1 3.0.0-beta.11 3.68.0 3.0.0-beta.12 3.69.0 3.0.0-beta.13 3.69.1 3.0.0-beta.14 3.7.0
mailpoet / vendor-prefixed / symfony / validator / Mapping / Loader / XmlFileLoader.php
mailpoet / vendor-prefixed / symfony / validator / Mapping / Loader Last commit date
schema 3 years ago AbstractLoader.php 4 years ago AnnotationLoader.php 1 year ago AutoMappingTrait.php 1 year ago FileLoader.php 4 years ago FilesLoader.php 4 years ago LoaderChain.php 4 years ago LoaderInterface.php 4 years ago PropertyInfoLoader.php 1 year ago StaticMethodLoader.php 4 years ago XmlFileLoader.php 4 years ago XmlFilesLoader.php 4 years ago YamlFileLoader.php 4 years ago YamlFilesLoader.php 4 years ago index.php 3 years ago
XmlFileLoader.php
145 lines
1 <?php
2 namespace MailPoetVendor\Symfony\Component\Validator\Mapping\Loader;
3 if (!defined('ABSPATH')) exit;
4 use MailPoetVendor\Symfony\Component\Config\Util\XmlUtils;
5 use MailPoetVendor\Symfony\Component\Validator\Constraint;
6 use MailPoetVendor\Symfony\Component\Validator\Exception\MappingException;
7 use MailPoetVendor\Symfony\Component\Validator\Mapping\ClassMetadata;
8 class XmlFileLoader extends FileLoader
9 {
10 protected $classes;
11 public function loadClassMetadata(ClassMetadata $metadata)
12 {
13 if (null === $this->classes) {
14 $this->loadClassesFromXml();
15 }
16 if (isset($this->classes[$metadata->getClassName()])) {
17 $classDescription = $this->classes[$metadata->getClassName()];
18 $this->loadClassMetadataFromXml($metadata, $classDescription);
19 return \true;
20 }
21 return \false;
22 }
23 public function getMappedClasses()
24 {
25 if (null === $this->classes) {
26 $this->loadClassesFromXml();
27 }
28 return \array_keys($this->classes);
29 }
30 protected function parseConstraints(\SimpleXMLElement $nodes)
31 {
32 $constraints = [];
33 foreach ($nodes as $node) {
34 if (\count($node) > 0) {
35 if (\count($node->value) > 0) {
36 $options = $this->parseValues($node->value);
37 } elseif (\count($node->constraint) > 0) {
38 $options = $this->parseConstraints($node->constraint);
39 } elseif (\count($node->option) > 0) {
40 $options = $this->parseOptions($node->option);
41 } else {
42 $options = [];
43 }
44 } elseif ('' !== (string) $node) {
45 $options = XmlUtils::phpize(\trim($node));
46 } else {
47 $options = null;
48 }
49 $constraints[] = $this->newConstraint((string) $node['name'], $options);
50 }
51 return $constraints;
52 }
53 protected function parseValues(\SimpleXMLElement $nodes)
54 {
55 $values = [];
56 foreach ($nodes as $node) {
57 if (\count($node) > 0) {
58 if (\count($node->value) > 0) {
59 $value = $this->parseValues($node->value);
60 } elseif (\count($node->constraint) > 0) {
61 $value = $this->parseConstraints($node->constraint);
62 } else {
63 $value = [];
64 }
65 } else {
66 $value = \trim($node);
67 }
68 if (isset($node['key'])) {
69 $values[(string) $node['key']] = $value;
70 } else {
71 $values[] = $value;
72 }
73 }
74 return $values;
75 }
76 protected function parseOptions(\SimpleXMLElement $nodes)
77 {
78 $options = [];
79 foreach ($nodes as $node) {
80 if (\count($node) > 0) {
81 if (\count($node->value) > 0) {
82 $value = $this->parseValues($node->value);
83 } elseif (\count($node->constraint) > 0) {
84 $value = $this->parseConstraints($node->constraint);
85 } else {
86 $value = [];
87 }
88 } else {
89 $value = XmlUtils::phpize($node);
90 if (\is_string($value)) {
91 $value = \trim($value);
92 }
93 }
94 $options[(string) $node['name']] = $value;
95 }
96 return $options;
97 }
98 protected function parseFile(string $path)
99 {
100 try {
101 $dom = XmlUtils::loadFile($path, __DIR__ . '/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd');
102 } catch (\Exception $e) {
103 throw new MappingException($e->getMessage(), $e->getCode(), $e);
104 }
105 return \simplexml_import_dom($dom);
106 }
107 private function loadClassesFromXml()
108 {
109 // This method may throw an exception. Do not modify the class'
110 // state before it completes
111 $xml = $this->parseFile($this->file);
112 $this->classes = [];
113 foreach ($xml->namespace as $namespace) {
114 $this->addNamespaceAlias((string) $namespace['prefix'], \trim((string) $namespace));
115 }
116 foreach ($xml->class as $class) {
117 $this->classes[(string) $class['name']] = $class;
118 }
119 }
120 private function loadClassMetadataFromXml(ClassMetadata $metadata, \SimpleXMLElement $classDescription)
121 {
122 if (\count($classDescription->{'group-sequence-provider'}) > 0) {
123 $metadata->setGroupSequenceProvider(\true);
124 }
125 foreach ($classDescription->{'group-sequence'} as $groupSequence) {
126 if (\count($groupSequence->value) > 0) {
127 $metadata->setGroupSequence($this->parseValues($groupSequence[0]->value));
128 }
129 }
130 foreach ($this->parseConstraints($classDescription->constraint) as $constraint) {
131 $metadata->addConstraint($constraint);
132 }
133 foreach ($classDescription->property as $property) {
134 foreach ($this->parseConstraints($property->constraint) as $constraint) {
135 $metadata->addPropertyConstraint((string) $property['name'], $constraint);
136 }
137 }
138 foreach ($classDescription->getter as $getter) {
139 foreach ($this->parseConstraints($getter->constraint) as $constraint) {
140 $metadata->addGetterConstraint((string) $getter['property'], $constraint);
141 }
142 }
143 }
144 }
145