Completed
Push — main ( d12b31...3b4b71 )
by Andreas
24s queued 12s
created
src/Factory/EasterFactory.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -16,16 +16,16 @@
 block discarded – undo
16 16
 
17 17
 class EasterFactory implements ItemFromDomElementCreator
18 18
 {
19
-	public function itemFromDomElement(DOMElement $element): ?HolidayIteratorItemInterface
20
-	{
21
-		if ($element->nodeName !== 'easter') {
22
-			return null;
23
-		}
19
+    public function itemFromDomElement(DOMElement $element): ?HolidayIteratorItemInterface
20
+    {
21
+        if ($element->nodeName !== 'easter') {
22
+            return null;
23
+        }
24 24
 
25
-		return new Easter(
26
-			$element->textContent,
27
-			$element->getAttribute('free') === "true",
28
-			(int) $element->getAttribute('offset')
29
-		);
30
-	}
25
+        return new Easter(
26
+            $element->textContent,
27
+            $element->getAttribute('free') === "true",
28
+            (int) $element->getAttribute('offset')
29
+        );
30
+    }
31 31
 }
Please login to merge, or discard this patch.
src/Factory/DateFactory.php 1 patch
Indentation   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -18,30 +18,30 @@
 block discarded – undo
18 18
 
19 19
 class DateFactory implements ItemFromDomElementCreator
20 20
 {
21
-	public function itemFromDomElement(DOMElement $element): ?HolidayIteratorItemInterface
22
-	{
23
-		if ($element->nodeName !== 'date') {
24
-			return null;
25
-		}
26
-
27
-		$day = CalendarDayFactory::createCalendarDay(
28
-			(int) $element->getAttribute('day'),
29
-			(int) $element->getAttribute('month'),
30
-			($element->hasAttribute('calendar') ? $element->getAttribute('calendar') : 'gregorian')
31
-		);
32
-
33
-		if ($element->hasAttribute('year')) {
34
-			$day->setYear((int) $element->getAttribute('year'));
35
-		}
36
-
37
-		return new Date(
38
-			$element->textContent,
21
+    public function itemFromDomElement(DOMElement $element): ?HolidayIteratorItemInterface
22
+    {
23
+        if ($element->nodeName !== 'date') {
24
+            return null;
25
+        }
26
+
27
+        $day = CalendarDayFactory::createCalendarDay(
28
+            (int) $element->getAttribute('day'),
29
+            (int) $element->getAttribute('month'),
30
+            ($element->hasAttribute('calendar') ? $element->getAttribute('calendar') : 'gregorian')
31
+        );
32
+
33
+        if ($element->hasAttribute('year')) {
34
+            $day->setYear((int) $element->getAttribute('year'));
35
+        }
36
+
37
+        return new Date(
38
+            $element->textContent,
39 39
             $element->getAttribute('free') === "true",
40
-			$day,
41
-			$element->hasAttribute('forwardto') ? $element->getAttribute('forwardto') : '',
42
-			$element->hasAttribute('forwardwhen') ? explode(' ', $element->getAttribute('forwardwhen')) : [],
43
-			$element->hasAttribute('rewindto') ? $element->getAttribute('rewindto') : '',
44
-			$element->hasAttribute('rewindwhen') ? explode(' ', $element->getAttribute('rewindwhen')) : [],
45
-		);
46
-	}
40
+            $day,
41
+            $element->hasAttribute('forwardto') ? $element->getAttribute('forwardto') : '',
42
+            $element->hasAttribute('forwardwhen') ? explode(' ', $element->getAttribute('forwardwhen')) : [],
43
+            $element->hasAttribute('rewindto') ? $element->getAttribute('rewindto') : '',
44
+            $element->hasAttribute('rewindwhen') ? explode(' ', $element->getAttribute('rewindwhen')) : [],
45
+        );
46
+    }
47 47
 }
Please login to merge, or discard this patch.
src/Factory/DateFollowupFactory.php 1 patch
Indentation   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -18,24 +18,24 @@
 block discarded – undo
18 18
 
19 19
 class DateFollowupFactory implements ItemFromDomElementCreator
20 20
 {
21
-	public function itemFromDomElement(DOMElement $element): ?HolidayIteratorItemInterface
22
-	{
23
-		if ($element->nodeName !== 'dateFollowUp') {
24
-			return null;
25
-		}
21
+    public function itemFromDomElement(DOMElement $element): ?HolidayIteratorItemInterface
22
+    {
23
+        if ($element->nodeName !== 'dateFollowUp') {
24
+            return null;
25
+        }
26 26
 
27
-		$day = CalendarDayFactory::createCalendarDay(
28
-			(int) $element->getAttribute('day'),
29
-			(int) $element->getAttribute('month'),
30
-			($element->hasAttribute('calendar') ? $element->getAttribute('calendar') : 'gregorian')
31
-		);
27
+        $day = CalendarDayFactory::createCalendarDay(
28
+            (int) $element->getAttribute('day'),
29
+            (int) $element->getAttribute('month'),
30
+            ($element->hasAttribute('calendar') ? $element->getAttribute('calendar') : 'gregorian')
31
+        );
32 32
 
33
-		return new DateFollowUp(
34
-			$element->textContent,
35
-			$element->getAttribute('free') === "true",
36
-			$day,
37
-			$element->getAttribute('followup'),
38
-			($element->hasAttribute('replaced') ? explode(' ', $element->getAttribute('replaced')) : [])
39
-		);
40
-	}
33
+        return new DateFollowUp(
34
+            $element->textContent,
35
+            $element->getAttribute('free') === "true",
36
+            $day,
37
+            $element->getAttribute('followup'),
38
+            ($element->hasAttribute('replaced') ? explode(' ', $element->getAttribute('replaced')) : [])
39
+        );
40
+    }
41 41
 }
Please login to merge, or discard this patch.
src/Factory/EasterOrthodoxFactory.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -16,16 +16,16 @@
 block discarded – undo
16 16
 
17 17
 class EasterOrthodoxFactory implements ItemFromDomElementCreator
18 18
 {
19
-	public function itemFromDomElement(DOMElement $element): ?HolidayIteratorItemInterface
20
-	{
21
-		if ($element->nodeName !== 'easterorthodox') {
22
-			return null;
23
-		}
19
+    public function itemFromDomElement(DOMElement $element): ?HolidayIteratorItemInterface
20
+    {
21
+        if ($element->nodeName !== 'easterorthodox') {
22
+            return null;
23
+        }
24 24
 
25
-		return new EasterOrthodox(
26
-			$element->textContent,
25
+        return new EasterOrthodox(
26
+            $element->textContent,
27 27
             $element->getAttribute('free') === "true",
28
-			(int) $element->getAttribute('offset')
29
-		);
30
-	}
28
+            (int) $element->getAttribute('offset')
29
+        );
30
+    }
31 31
 }
Please login to merge, or discard this patch.
src/Factory/ItemFromDomElementCreator.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -15,5 +15,5 @@
 block discarded – undo
15 15
 
16 16
 interface ItemFromDomElementCreator
17 17
 {
18
-	public function itemFromDomElement(DOMElement $element): ?HolidayIteratorItemInterface;
18
+    public function itemFromDomElement(DOMElement $element): ?HolidayIteratorItemInterface;
19 19
 }
Please login to merge, or discard this patch.
src/Factory/ObservanceDecoratorFactory.php 2 patches
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -16,16 +16,16 @@
 block discarded – undo
16 16
 
17 17
 class ObservanceDecoratorFactory implements DecorateFromDomElement
18 18
 {
19
-	public function decorate(HolidayIteratorItemInterface $element, DOMElement $domElement): HolidayIteratorItemInterface
20
-	{
21
-		if (! $domElement->hasAttribute('firstobservance') && ! $domElement->hasAttribute('lastobservance')) {
22
-			return $element;
23
-		}
19
+    public function decorate(HolidayIteratorItemInterface $element, DOMElement $domElement): HolidayIteratorItemInterface
20
+    {
21
+        if (! $domElement->hasAttribute('firstobservance') && ! $domElement->hasAttribute('lastobservance')) {
22
+            return $element;
23
+        }
24 24
 
25
-		return new ObservanceDecorator(
26
-			$element,
27
-			$domElement->hasAttribute('firstobservance') ? (int) $domElement->getAttribute('firstobservance') : null,
28
-			$domElement->hasAttribute('lastobservance') ? (int) $domElement->getAttribute('lastobservance') : null,
29
-		);
30
-	}
25
+        return new ObservanceDecorator(
26
+            $element,
27
+            $domElement->hasAttribute('firstobservance') ? (int) $domElement->getAttribute('firstobservance') : null,
28
+            $domElement->hasAttribute('lastobservance') ? (int) $domElement->getAttribute('lastobservance') : null,
29
+        );
30
+    }
31 31
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -18,7 +18,7 @@
 block discarded – undo
18 18
 {
19 19
 	public function decorate(HolidayIteratorItemInterface $element, DOMElement $domElement): HolidayIteratorItemInterface
20 20
 	{
21
-		if (! $domElement->hasAttribute('firstobservance') && ! $domElement->hasAttribute('lastobservance')) {
21
+		if (!$domElement->hasAttribute('firstobservance') && !$domElement->hasAttribute('lastobservance')) {
22 22
 			return $element;
23 23
 		}
24 24
 
Please login to merge, or discard this patch.
src/Factory/RelativeFactory.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -16,18 +16,18 @@
 block discarded – undo
16 16
 
17 17
 class RelativeFactory implements ItemFromDomElementCreator
18 18
 {
19
-	public function itemFromDomElement(DOMElement $element): ?HolidayIteratorItemInterface
20
-	{
21
-		if ($element->nodeName !== 'relative') {
22
-			return null;
23
-		}
19
+    public function itemFromDomElement(DOMElement $element): ?HolidayIteratorItemInterface
20
+    {
21
+        if ($element->nodeName !== 'relative') {
22
+            return null;
23
+        }
24 24
 
25
-		return new Relative(
26
-			$element->textContent,
27
-			$element->getAttribute('free') === "true",
28
-			(int) $element->getAttribute('day'),
29
-			(int) $element->getAttribute('month'),
30
-			$element->getAttribute('relation')
31
-		);
32
-	}
25
+        return new Relative(
26
+            $element->textContent,
27
+            $element->getAttribute('free') === "true",
28
+            (int) $element->getAttribute('day'),
29
+            (int) $element->getAttribute('month'),
30
+            $element->getAttribute('relation')
31
+        );
32
+    }
33 33
 }
Please login to merge, or discard this patch.
src/Factory/DecorateFromDomElement.php 1 patch
Indentation   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -15,5 +15,5 @@
 block discarded – undo
15 15
 
16 16
 interface DecorateFromDomElement
17 17
 {
18
-	public function decorate(HolidayIteratorItemInterface $element, DOMElement $domElement): HolidayIteratorItemInterface;
18
+    public function decorate(HolidayIteratorItemInterface $element, DOMElement $domElement): HolidayIteratorItemInterface;
19 19
 }
Please login to merge, or discard this patch.
src/HolidayIteratorFactory.php 1 patch
Indentation   +104 added lines, -104 removed lines patch added patch discarded remove patch
@@ -51,108 +51,108 @@
 block discarded – undo
51 51
 
52 52
 class HolidayIteratorFactory
53 53
 {
54
-	/** @var ItemFromDomElementCreator[] */
55
-	private $factories;
56
-
57
-	/** @var DecorateFromDomElement[] */
58
-	private $decorators;
59
-
60
-	public function __construct()
61
-	{
62
-		$this->factories = [
63
-			new EasterFactory(),
64
-			new EasterOrthodoxFactory(),
65
-			new DateFactory(),
66
-			new DateFollowupFactory(),
67
-			new RelativeFactory(),
68
-		];
69
-
70
-		$this->decorators = [
71
-			new ObservanceDecoratorFactory(),
72
-		];
73
-	}
74
-
75
-	/**
76
-	 * Create a HolidayIterator from an XML-File
77
-	 *
78
-	 * The provided XML-File has to validate against the holiday.xsd-file you
79
-	 * can find in this projects "share" folder.
80
-	 *
81
-	 * @param string $file
82
-	 *
83
-	 * @return HolidayIterator
84
-	 */
85
-	public function createIteratorFromXmlFile(string $file): HolidayIterator
86
-	{
87
-		$iterator = new HolidayIterator();
88
-
89
-		$dom = new DOMDocument('1.0', 'UTF-8');
90
-		$dom->load($file);
91
-		$dom->xinclude();
92
-
93
-		if (!@$dom->schemaValidate(__DIR__ . '/../share/holidays.xsd')) {
94
-			throw new Exception('XML-File does not validate agains schema');
95
-		}
96
-		foreach ($dom->documentElement->childNodes as $child) {
97
-			if (!$child instanceof DOMElement) {
98
-				continue;
99
-			}
100
-			if ($child->nodeName === 'resources') {
101
-				continue;
102
-			}
103
-
104
-			try {
105
-				$element = $this->getElement($child);
106
-				$element = $this->decorateElement($element, $child);
107
-				$iterator->append($element);
108
-			} catch (Throwable $e) {
109
-				// Do nothing on purpose
110
-			}
111
-		}
112
-
113
-		return $iterator;
114
-	}
115
-
116
-	/**
117
-	 * Create a HolidayIterator from an ISO 3166-code.
118
-	 *
119
-	 * @param string $isoCode
120
-	 *
121
-	 * @return HolidayIterator
122
-	 */
123
-	public function createIteratorFromISO3166(string $isoCode): HolidayIterator
124
-	{
125
-		$file = __DIR__ . '/../share/%s.xml';
126
-		$file1 = sprintf($file, $isoCode);
127
-
128
-		if (!is_readable($file1)) {
129
-			throw new UnexpectedValueException(sprintf(
130
-				'There is no holiday-file for %s',
131
-				$isoCode
132
-			));
133
-		}
134
-
135
-		return $this->createIteratorFromXmlFile($file1);
136
-	}
137
-
138
-	private function getElement(DOMElement $child): HolidayIteratorItemInterface
139
-	{
140
-		foreach ($this->factories as $factory) {
141
-			$element = $factory->itemFromDomElement($child);
142
-			if ($element instanceof HolidayIteratorItemInterface) {
143
-				return $element;
144
-			}
145
-		}
146
-
147
-		throw new RuntimeException('Unknown element encountered');
148
-	}
149
-
150
-	private function decorateElement(HolidayIteratorItemInterface $element, DOMElement $child): HolidayIteratorItemInterface
151
-	{
152
-		foreach ($this->decorators as $decorator) {
153
-			$element = $decorator->decorate($element, $child);
154
-		}
155
-
156
-		return $element;
157
-	}
54
+    /** @var ItemFromDomElementCreator[] */
55
+    private $factories;
56
+
57
+    /** @var DecorateFromDomElement[] */
58
+    private $decorators;
59
+
60
+    public function __construct()
61
+    {
62
+        $this->factories = [
63
+            new EasterFactory(),
64
+            new EasterOrthodoxFactory(),
65
+            new DateFactory(),
66
+            new DateFollowupFactory(),
67
+            new RelativeFactory(),
68
+        ];
69
+
70
+        $this->decorators = [
71
+            new ObservanceDecoratorFactory(),
72
+        ];
73
+    }
74
+
75
+    /**
76
+     * Create a HolidayIterator from an XML-File
77
+     *
78
+     * The provided XML-File has to validate against the holiday.xsd-file you
79
+     * can find in this projects "share" folder.
80
+     *
81
+     * @param string $file
82
+     *
83
+     * @return HolidayIterator
84
+     */
85
+    public function createIteratorFromXmlFile(string $file): HolidayIterator
86
+    {
87
+        $iterator = new HolidayIterator();
88
+
89
+        $dom = new DOMDocument('1.0', 'UTF-8');
90
+        $dom->load($file);
91
+        $dom->xinclude();
92
+
93
+        if (!@$dom->schemaValidate(__DIR__ . '/../share/holidays.xsd')) {
94
+            throw new Exception('XML-File does not validate agains schema');
95
+        }
96
+        foreach ($dom->documentElement->childNodes as $child) {
97
+            if (!$child instanceof DOMElement) {
98
+                continue;
99
+            }
100
+            if ($child->nodeName === 'resources') {
101
+                continue;
102
+            }
103
+
104
+            try {
105
+                $element = $this->getElement($child);
106
+                $element = $this->decorateElement($element, $child);
107
+                $iterator->append($element);
108
+            } catch (Throwable $e) {
109
+                // Do nothing on purpose
110
+            }
111
+        }
112
+
113
+        return $iterator;
114
+    }
115
+
116
+    /**
117
+     * Create a HolidayIterator from an ISO 3166-code.
118
+     *
119
+     * @param string $isoCode
120
+     *
121
+     * @return HolidayIterator
122
+     */
123
+    public function createIteratorFromISO3166(string $isoCode): HolidayIterator
124
+    {
125
+        $file = __DIR__ . '/../share/%s.xml';
126
+        $file1 = sprintf($file, $isoCode);
127
+
128
+        if (!is_readable($file1)) {
129
+            throw new UnexpectedValueException(sprintf(
130
+                'There is no holiday-file for %s',
131
+                $isoCode
132
+            ));
133
+        }
134
+
135
+        return $this->createIteratorFromXmlFile($file1);
136
+    }
137
+
138
+    private function getElement(DOMElement $child): HolidayIteratorItemInterface
139
+    {
140
+        foreach ($this->factories as $factory) {
141
+            $element = $factory->itemFromDomElement($child);
142
+            if ($element instanceof HolidayIteratorItemInterface) {
143
+                return $element;
144
+            }
145
+        }
146
+
147
+        throw new RuntimeException('Unknown element encountered');
148
+    }
149
+
150
+    private function decorateElement(HolidayIteratorItemInterface $element, DOMElement $child): HolidayIteratorItemInterface
151
+    {
152
+        foreach ($this->decorators as $decorator) {
153
+            $element = $decorator->decorate($element, $child);
154
+        }
155
+
156
+        return $element;
157
+    }
158 158
 }
Please login to merge, or discard this patch.