@@ -39,8 +39,8 @@ discard block |
||
| 39 | 39 | } |
| 40 | 40 | |
| 41 | 41 | /** |
| 42 | - * @param $selector |
|
| 43 | - * @param $index |
|
| 42 | + * @param string|null $selector |
|
| 43 | + * @param null|integer $index |
|
| 44 | 44 | * @param string $property |
| 45 | 45 | * @param int $nodeType |
| 46 | 46 | * |
@@ -198,7 +198,7 @@ discard block |
||
| 198 | 198 | } |
| 199 | 199 | |
| 200 | 200 | /** |
| 201 | - * @return \DOMNode|null |
|
| 201 | + * @return Element|null |
|
| 202 | 202 | */ |
| 203 | 203 | public function firstDescendant(){ |
| 204 | 204 | return $this->descendants()[0] ?? null; |
@@ -14,7 +14,7 @@ discard block |
||
| 14 | 14 | |
| 15 | 15 | use DOMElement; |
| 16 | 16 | |
| 17 | -class Element extends DOMElement{ |
|
| 17 | +class Element extends DOMElement { |
|
| 18 | 18 | use NodeTraversalTrait, NodeManipulationTrait; |
| 19 | 19 | |
| 20 | 20 | /** |
@@ -25,7 +25,7 @@ discard block |
||
| 25 | 25 | public function id(string $newID = null):string { |
| 26 | 26 | $oldID = $this->getAttribute('id'); |
| 27 | 27 | |
| 28 | - if(!is_null($newID)){ |
|
| 28 | + if (!is_null($newID)) { |
|
| 29 | 29 | $this->setAttribute('id', $newID); |
| 30 | 30 | } |
| 31 | 31 | |
@@ -38,14 +38,14 @@ discard block |
||
| 38 | 38 | public function getClassNames():array{ |
| 39 | 39 | $currentClassnames = []; |
| 40 | 40 | |
| 41 | - if($this->hasAttributes()){ |
|
| 41 | + if ($this->hasAttributes()) { |
|
| 42 | 42 | $classnames = explode(' ', trim($this->getAttribute('class'))); |
| 43 | 43 | |
| 44 | - if(!empty($classnames)){ |
|
| 44 | + if (!empty($classnames)) { |
|
| 45 | 45 | |
| 46 | - foreach($classnames as $classname){ |
|
| 46 | + foreach ($classnames as $classname) { |
|
| 47 | 47 | |
| 48 | - if(empty($classname)){ |
|
| 48 | + if (empty($classname)) { |
|
| 49 | 49 | continue; |
| 50 | 50 | } |
| 51 | 51 | |
@@ -76,9 +76,9 @@ discard block |
||
| 76 | 76 | public function addClassNames(array $classnames):Element{ |
| 77 | 77 | $currentClassnames = $this->getClassNames(); |
| 78 | 78 | |
| 79 | - foreach($classnames as $classname){ |
|
| 79 | + foreach ($classnames as $classname) { |
|
| 80 | 80 | |
| 81 | - if(!in_array($classname, $currentClassnames, true)){ |
|
| 81 | + if (!in_array($classname, $currentClassnames, true)) { |
|
| 82 | 82 | array_push($currentClassnames, $classname); |
| 83 | 83 | } |
| 84 | 84 | |
@@ -97,12 +97,12 @@ discard block |
||
| 97 | 97 | public function removeClassNames(array $classnames):Element{ |
| 98 | 98 | $currentClassnames = $this->getClassNames(); |
| 99 | 99 | |
| 100 | - foreach($classnames as $classname){ |
|
| 100 | + foreach ($classnames as $classname) { |
|
| 101 | 101 | $keys = array_keys($currentClassnames, $classname); |
| 102 | 102 | |
| 103 | - if(!empty($keys)){ |
|
| 103 | + if (!empty($keys)) { |
|
| 104 | 104 | |
| 105 | - foreach($keys as $key){ |
|
| 105 | + foreach ($keys as $key) { |
|
| 106 | 106 | unset($currentClassnames[$key]); |
| 107 | 107 | } |
| 108 | 108 | |
@@ -151,15 +151,15 @@ discard block |
||
| 151 | 151 | public function getStyle():array{ |
| 152 | 152 | $currentStyle = []; |
| 153 | 153 | |
| 154 | - if($this->hasAttributes()){ |
|
| 154 | + if ($this->hasAttributes()) { |
|
| 155 | 155 | $styles = explode(';', trim($this->getAttribute('style'))); |
| 156 | 156 | |
| 157 | - if(!empty($styles)){ |
|
| 157 | + if (!empty($styles)) { |
|
| 158 | 158 | |
| 159 | - foreach($styles as $style){ |
|
| 159 | + foreach ($styles as $style) { |
|
| 160 | 160 | $s = explode(':', $style); |
| 161 | 161 | |
| 162 | - if(count($s) === 2){ |
|
| 162 | + if (count($s) === 2) { |
|
| 163 | 163 | $currentStyle[strtolower(trim($s[0]))] = trim($s[1]); |
| 164 | 164 | } |
| 165 | 165 | |
@@ -177,10 +177,10 @@ discard block |
||
| 177 | 177 | * |
| 178 | 178 | * @return bool|string |
| 179 | 179 | */ |
| 180 | - public function hasStyle(string $property){ |
|
| 180 | + public function hasStyle(string $property) { |
|
| 181 | 181 | $currentStyle = $this->getStyle(); |
| 182 | 182 | |
| 183 | - if(array_key_exists(strtolower($property), $currentStyle)){ |
|
| 183 | + if (array_key_exists(strtolower($property), $currentStyle)) { |
|
| 184 | 184 | return $currentStyle[$property]; |
| 185 | 185 | } |
| 186 | 186 | |
@@ -196,11 +196,11 @@ discard block |
||
| 196 | 196 | public function setStyle(array $style, bool $replace = false):Element{ |
| 197 | 197 | $currentStyle = $this->getStyle(); |
| 198 | 198 | |
| 199 | - if(!$replace){ |
|
| 199 | + if (!$replace) { |
|
| 200 | 200 | $style = array_merge($currentStyle, $style); |
| 201 | 201 | } |
| 202 | 202 | |
| 203 | - foreach($style as $property => $value){ |
|
| 203 | + foreach ($style as $property => $value) { |
|
| 204 | 204 | $style[$property] = $property.': '.$value.';'; |
| 205 | 205 | } |
| 206 | 206 | |
@@ -215,7 +215,7 @@ discard block |
||
| 215 | 215 | public function getAttributes():array{ |
| 216 | 216 | $attributes = []; |
| 217 | 217 | |
| 218 | - foreach($this->attributes as $attribute){ |
|
| 218 | + foreach ($this->attributes as $attribute) { |
|
| 219 | 219 | $attributes[$attribute->nodeName] = $attribute->nodeValue; |
| 220 | 220 | } |
| 221 | 221 | |
@@ -229,7 +229,7 @@ discard block |
||
| 229 | 229 | */ |
| 230 | 230 | public function setAttributes(array $attributes):Element{ |
| 231 | 231 | |
| 232 | - foreach($attributes as $name => $value){ |
|
| 232 | + foreach ($attributes as $name => $value) { |
|
| 233 | 233 | $this->setAttribute($name, $value); |
| 234 | 234 | } |
| 235 | 235 | |
@@ -243,7 +243,7 @@ discard block |
||
| 243 | 243 | */ |
| 244 | 244 | public function removeAttributes(array $attributes):Element{ |
| 245 | 245 | |
| 246 | - foreach($attributes as $name){ |
|
| 246 | + foreach ($attributes as $name) { |
|
| 247 | 247 | $this->removeAttribute($name); |
| 248 | 248 | } |
| 249 | 249 | |
@@ -15,7 +15,7 @@ discard block |
||
| 15 | 15 | use DOMDocument, DOMNode, DOMNodeList, DOMXPath; |
| 16 | 16 | use Symfony\Component\CssSelector\CssSelectorConverter; |
| 17 | 17 | |
| 18 | -class Document extends DOMDocument{ |
|
| 18 | +class Document extends DOMDocument { |
|
| 19 | 19 | |
| 20 | 20 | /** |
| 21 | 21 | * Document constructor. |
@@ -23,7 +23,7 @@ discard block |
||
| 23 | 23 | * @param string|null $version |
| 24 | 24 | * @param string|null $encoding |
| 25 | 25 | */ |
| 26 | - public function __construct($version = null, $encoding = null){ |
|
| 26 | + public function __construct($version = null, $encoding = null) { |
|
| 27 | 27 | parent::__construct($version, $encoding); |
| 28 | 28 | |
| 29 | 29 | $this->registerNodeClass('DOMElement', Element::class); |
@@ -73,21 +73,21 @@ discard block |
||
| 73 | 73 | */ |
| 74 | 74 | public function select($selectors = null, DOMNode $contextNode = null, string $axis = 'descendant-or-self::', int $nodeType = XML_ELEMENT_NODE):array{ |
| 75 | 75 | |
| 76 | - if(is_string($selectors)){ |
|
| 76 | + if (is_string($selectors)) { |
|
| 77 | 77 | $selectors = [trim($selectors)]; |
| 78 | 78 | } |
| 79 | 79 | |
| 80 | - if(!is_array($selectors) || empty($selectors)){ |
|
| 80 | + if (!is_array($selectors) || empty($selectors)) { |
|
| 81 | 81 | $selectors = ['*']; |
| 82 | 82 | } |
| 83 | 83 | |
| 84 | 84 | $elements = []; |
| 85 | 85 | |
| 86 | - foreach($selectors as $selector){ |
|
| 86 | + foreach ($selectors as $selector) { |
|
| 87 | 87 | |
| 88 | - foreach($this->getElementsBySelector($selector, $contextNode, $axis) as $element){ |
|
| 88 | + foreach ($this->getElementsBySelector($selector, $contextNode, $axis) as $element) { |
|
| 89 | 89 | |
| 90 | - if($element->nodeType === $nodeType){ |
|
| 90 | + if ($element->nodeType === $nodeType) { |
|
| 91 | 91 | $elements[] = $element; |
| 92 | 92 | } |
| 93 | 93 | |
@@ -120,9 +120,9 @@ discard block |
||
| 120 | 120 | public function removeElementsBySelector($selectors, DOMNode $contextNode = null, string $axis = 'descendant-or-self::'):Document{ |
| 121 | 121 | $nodes = $this->select($selectors, $contextNode, $axis); |
| 122 | 122 | |
| 123 | - if(count($nodes) > 0){ |
|
| 123 | + if (count($nodes) > 0) { |
|
| 124 | 124 | /** @var \chillerlan\PrototypeDOM\Element $node */ |
| 125 | - foreach($nodes as $node){ |
|
| 125 | + foreach ($nodes as $node) { |
|
| 126 | 126 | $node->remove(); |
| 127 | 127 | } |
| 128 | 128 | |
@@ -139,21 +139,21 @@ discard block |
||
| 139 | 139 | */ |
| 140 | 140 | public function _toDOMNodeList($content):DOMNodeList{ |
| 141 | 141 | |
| 142 | - if($content instanceof DOMNodeList){ |
|
| 142 | + if ($content instanceof DOMNodeList) { |
|
| 143 | 143 | return $content; |
| 144 | 144 | } |
| 145 | 145 | |
| 146 | 146 | $document = new Document; |
| 147 | 147 | |
| 148 | - if($content instanceof DOMNode){ |
|
| 148 | + if ($content instanceof DOMNode) { |
|
| 149 | 149 | $document->loadHTML('<html><body id="content"></body></html>'); |
| 150 | 150 | |
| 151 | 151 | $document->getElementById('content')->appendChild($document->importNode($content, true)); |
| 152 | 152 | } |
| 153 | - elseif(is_string($content)){ |
|
| 153 | + elseif (is_string($content)) { |
|
| 154 | 154 | $document->loadHTML('<html><body id="content">'.$content.'</body></html>'); |
| 155 | 155 | } |
| 156 | - else{ |
|
| 156 | + else { |
|
| 157 | 157 | throw new \Exception('invalid content'); // @codeCoverageIgnore |
| 158 | 158 | } |
| 159 | 159 | |
@@ -171,15 +171,15 @@ discard block |
||
| 171 | 171 | public function recursivelyCollect(DOMNode $element, string $property, int $maxLength = -1, int $nodeType = XML_ELEMENT_NODE):array{ |
| 172 | 172 | $nodes = []; |
| 173 | 173 | |
| 174 | - if(in_array($property, ['parentNode', 'previousSibling', 'nextSibling'])){ |
|
| 174 | + if (in_array($property, ['parentNode', 'previousSibling', 'nextSibling'])) { |
|
| 175 | 175 | |
| 176 | - while($element = $element->{$property}){ |
|
| 176 | + while ($element = $element->{$property}) { |
|
| 177 | 177 | |
| 178 | - if($element->nodeType === $nodeType){ |
|
| 178 | + if ($element->nodeType === $nodeType) { |
|
| 179 | 179 | $nodes[] = $element; |
| 180 | 180 | } |
| 181 | 181 | |
| 182 | - if(count($nodes) === $maxLength){ |
|
| 182 | + if (count($nodes) === $maxLength) { |
|
| 183 | 183 | break; |
| 184 | 184 | } |
| 185 | 185 | |
@@ -199,14 +199,14 @@ discard block |
||
| 199 | 199 | * |
| 200 | 200 | * @return \DOMNode|null |
| 201 | 201 | */ |
| 202 | - public function _recursivelyFind(DOMNode $element, string $property, string $selector = null, int $index = 0, int $nodeType = XML_ELEMENT_NODE){ |
|
| 202 | + public function _recursivelyFind(DOMNode $element, string $property, string $selector = null, int $index = 0, int $nodeType = XML_ELEMENT_NODE) { |
|
| 203 | 203 | |
| 204 | - if(in_array($property, ['parentNode', 'previousSibling', 'nextSibling'])){ |
|
| 204 | + if (in_array($property, ['parentNode', 'previousSibling', 'nextSibling'])) { |
|
| 205 | 205 | |
| 206 | 206 | /** @var \chillerlan\PrototypeDOM\Element $element */ |
| 207 | - while($element = $element->{$property}){ |
|
| 207 | + while ($element = $element->{$property}) { |
|
| 208 | 208 | |
| 209 | - if($element->nodeType !== $nodeType || !is_null($selector) && !$element->match($selector) || --$index >= 0){ |
|
| 209 | + if ($element->nodeType !== $nodeType || !is_null($selector) && !$element->match($selector) || --$index >= 0) { |
|
| 210 | 210 | continue; |
| 211 | 211 | } |
| 212 | 212 | |
@@ -226,9 +226,9 @@ discard block |
||
| 226 | 226 | */ |
| 227 | 227 | public function match(DOMNode $element, string $selector):bool{ |
| 228 | 228 | |
| 229 | - foreach($this->select($selector) as $match){ |
|
| 229 | + foreach ($this->select($selector) as $match) { |
|
| 230 | 230 | |
| 231 | - if($element->isSameNode($match)){ |
|
| 231 | + if ($element->isSameNode($match)) { |
|
| 232 | 232 | return true; |
| 233 | 233 | } |
| 234 | 234 | |
@@ -247,7 +247,7 @@ discard block |
||
| 247 | 247 | /** @var \chillerlan\PrototypeDOM\Element $element */ |
| 248 | 248 | $element = $this->createElement($tag); |
| 249 | 249 | |
| 250 | - if($attributes){ |
|
| 250 | + if ($attributes) { |
|
| 251 | 251 | $element->setAttributes($attributes); |
| 252 | 252 | } |
| 253 | 253 | |