From b5fe7cd08ffbfa941180c7d4e48b63fcf04f31ba Mon Sep 17 00:00:00 2001 From: Marc Henry Schultz <85400359+mhsdesign@users.noreply.github.com> Date: Sun, 16 Mar 2025 20:52:57 +0100 Subject: [PATCH 1/2] BUGFIX: Enums throw `::__construct() does not exist` on compilation --- .../ObjectManagement/Configuration/ConfigurationBuilder.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Neos.Flow/Classes/ObjectManagement/Configuration/ConfigurationBuilder.php b/Neos.Flow/Classes/ObjectManagement/Configuration/ConfigurationBuilder.php index 11c4c61aad..bdecb0a559 100644 --- a/Neos.Flow/Classes/ObjectManagement/Configuration/ConfigurationBuilder.php +++ b/Neos.Flow/Classes/ObjectManagement/Configuration/ConfigurationBuilder.php @@ -87,6 +87,10 @@ public function buildObjectConfigurations(array $availableClassAndInterfaceNames continue; } + if (enum_exists($classOrInterfaceName)) { + continue; + } + if (interface_exists($classOrInterfaceName)) { $interfaceName = $classOrInterfaceName; $implementationClassName = $this->reflectionService->getDefaultImplementationClassNameForInterface($interfaceName); From e118e8066d19992b81a8146f62fb61eea6350067 Mon Sep 17 00:00:00 2001 From: Marc Henry Schultz <85400359+mhsdesign@users.noreply.github.com> Date: Sun, 16 Mar 2025 21:32:09 +0100 Subject: [PATCH 2/2] TASK: Ensure `enum_exists` doesnt confuse php 8.0 --- .../ObjectManagement/Configuration/ConfigurationBuilder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Neos.Flow/Classes/ObjectManagement/Configuration/ConfigurationBuilder.php b/Neos.Flow/Classes/ObjectManagement/Configuration/ConfigurationBuilder.php index bdecb0a559..a6fcbd26c2 100644 --- a/Neos.Flow/Classes/ObjectManagement/Configuration/ConfigurationBuilder.php +++ b/Neos.Flow/Classes/ObjectManagement/Configuration/ConfigurationBuilder.php @@ -87,7 +87,7 @@ public function buildObjectConfigurations(array $availableClassAndInterfaceNames continue; } - if (enum_exists($classOrInterfaceName)) { + if (method_exist('enum_exists') && enum_exists($classOrInterfaceName)) { continue; }