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:----F2Tsx8/oA6CIYPXgaIHrmSZ2hJ2ZXXGvOb2ELkeThHoMjC1GC/ytRpOD3RrCX/ZEsVdSP4u/gnfNhdn2elsRYgxx4XQsJdTaPmItWKqAH55JQICMlFBAdBG4Phin46Rdo6GqpzkdV9ImKnRNMKm/c4BrQ9TCKZDIQ2RmF+Z+6ubr7vx7ByYz6Dl6d8XqdyxY0KG4gQt5zGooqvDxRcZQJ+s9BB2COH8LuGqwSHnXr/kZkAdTw9Yipmpb08DMex7HihSB1jTMWzlAFJenOxxfZw/IYED9s1Eo0BYalrqrPmAkit8XCd8qhsLh8bGIXNFfF8yNlEOCuvWnE6OrtVGFMQN/GcjUnmgkCJnP3W0Sz9aegA4a6TVe09UZXPi5Bp4gbF6gm7AEnpW7qw9PPo8uzk11zc/zh4zYG9a8xDiGKcgS4UtmKAmbwlWvoqwaXrpGSzXMAvLLfhPTnfVJBIHdaWViHlQCDd4i7PifusNV1DagwyrgOfPS8a819D38dUuq3eQmmYYDRtTja4uRueKBfLaEx1vYB6KyIzFKVDECF4qg+EnYs9Y/u61nyGzHvRvJOArNpXT9t3HNHss9ESBGcVkkAP0ZjqEtMoF10RUZENhYYPbjLSZF8dx0BempH+zFjje0y89qV6z9Q3LzF2h10T8nzb4W3ZrCTML0Wsmiy9A=----ATTACHMENT:----NzU4ODEyOTk5NjgxMzY1OCA2MTY5NjE1MDE1ODM5NzU1IDc0MTU4NTE3OTU5OTcxNjM=