diff --git a/rules-tests/CodeQuality/Rector/Isset_/IssetOnPropertyObjectToPropertyExistsRector/Fixture/skip_simple_xml_element.php.inc b/rules-tests/CodeQuality/Rector/Isset_/IssetOnPropertyObjectToPropertyExistsRector/Fixture/skip_simple_xml_element.php.inc new file mode 100644 index 00000000000..7c51e90b85d --- /dev/null +++ b/rules-tests/CodeQuality/Rector/Isset_/IssetOnPropertyObjectToPropertyExistsRector/Fixture/skip_simple_xml_element.php.inc @@ -0,0 +1,18 @@ +attributes(); + + if (isset($svgAttributes->width) && isset($svgAttributes->height)) { + return true; + } + + return isset($svg->viewBox); + } +} diff --git a/rules/CodeQuality/Rector/Isset_/IssetOnPropertyObjectToPropertyExistsRector.php b/rules/CodeQuality/Rector/Isset_/IssetOnPropertyObjectToPropertyExistsRector.php index 52f0b4374b1..5e68aeb0945 100644 --- a/rules/CodeQuality/Rector/Isset_/IssetOnPropertyObjectToPropertyExistsRector.php +++ b/rules/CodeQuality/Rector/Isset_/IssetOnPropertyObjectToPropertyExistsRector.php @@ -221,6 +221,13 @@ private function matchPropertyTypeClassReflection(PropertyFetch $propertyFetch): return null; } - return $this->reflectionProvider->getClass($className); + $classReflection = $this->reflectionProvider->getClass($className); + + // XML elements resolve properties from the XML document itself + if ($classReflection->is('SimpleXMLElement')) { + return null; + } + + return $classReflection; } }