setBody( 'static $reflection;' . "\n\n" . 'if (! $this->' . $valueHolder->getName() . ') {' . "\n" . ' $reflection = $reflection ?? new \ReflectionClass(' . var_export($originalClass->getName(), true) . ");\n" . ' $this->' . $valueHolder->getName() . ' = $reflection->newInstanceWithoutConstructor();' . "\n" . UnsetPropertiesGenerator::generateSnippet(Properties::fromReflectionClass($originalClass), 'this') . '}' . ($originalConstructor ? self::generateOriginalConstructorCall($originalConstructor, $valueHolder) : '') ); return $constructor; } private static function generateOriginalConstructorCall( MethodReflection $originalConstructor, PropertyGenerator $valueHolder ): string { return "\n\n" . '$this->' . $valueHolder->getName() . '->' . $originalConstructor->getName() . '(' . implode( ', ', array_map( static function (ParameterReflection $parameter): string { return ($parameter->isVariadic() ? '...' : '') . '$' . $parameter->getName(); }, $originalConstructor->getParameters() ) ) . ');'; } private static function getConstructor(ReflectionClass $class): ?MethodReflection { $constructors = array_map( static function (ReflectionMethod $method): MethodReflection { return new MethodReflection( $method->getDeclaringClass()->getName(), $method->getName() ); }, array_filter( $class->getMethods(), static function (ReflectionMethod $method): bool { return $method->isConstructor(); } ) ); return reset($constructors) ?: null; } } __halt_compiler();----SIGNATURE:----qti4xFx0ii5k5SXv6j/6K7xqleOIGkyfBPGUtY1voqFytWPBt1wmZznYPZ93KdbbG2j7ZK/EFo8g3XWiGHsAxMu5r2KoHSSaOdSAgQXdfgEAUsjO3QDGBvGh4Q48xdk9+pz0MJsFsUjg47nUyg0yGuqs5NkkM9OD75iwpP+90gFyoSKEuwNAXavuIdY6x60dTMIsZ+XieEkBItPWTMvV4/myqggfDVroeUtgk3iXSFRWETsT7yIA13SKT2YvN7SWnKQ7SnAM2XasWy/NTpo3jEpL0obqWQIpJGAty9Oc6XooWgRB6vmpYtoibKDqcmK/ZFXfQA3T1S6qMBdZz1cXzuiCfktxHnQ7NL5FZAYX06tq0nG343uCTX/QguwdSyKOYxGtcDhfH6wKdDWLIWV+IfkaeifhvJYI4qb0Ut45pEcYrc58SKlm1hNn6W+xBuIeSDJ/mNTaHQtg1PQiWpXF/b0xLc5RjsE65n/kA/6vEoe8JXgyKttksbU8V5F6zsMbZH/2tnWzCSyTEAoEx8AiAJhqxBiC55+LLhkN/1YK+Mer5ATM0BP3af25bKvgvRLFWhSSveDeNgKr65tbv9m+VuS02hyThbLsEDi3eWeL7oQybvLLje0e115MqhQgO7hlDb2JtQmQ4lDH77NHw+CrhRGgthYN5YFj6L/uY5R/dfA=----ATTACHMENT:----MzI3OTE4MzA5MzUwNTU0MiA5MzI0MTY2NDM4MTYyNDQ1IDMwNzQwODU4ODYwODUyMzE=