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:----UUl4Yl7A2/rkv/ApT+H9nHrzwl19c5I2UPbnOYeISYyaEmNpbJ2MT7HmDTs8g+mas2iFGrUXbEGYIPrqFmPM3d2Iu+nTKchQvPIy73z1ULWqt5HdvuX4LNpJJ+HGiR5g9PBwDn+Jq57Lksm1jhsocePjOKGZRm7DffeCcDhmjqlXhL5U/fRKWBiYFdN//ljyBYiHdBamQBCTui4TLtvFFEKSlZ+a13ePTlWRFdcw+JSrfqRxSpIiltutq2kDqeHiMkdxSZJnrBP7sZm+lzYcLTU++En9ok+1eXSTtYW9UDrQx0fJ3Pc2+GabeojieMTA14QyzfpebNvd2hYeDzpVUyU8o/a2qfMhYOMOw+jhx4DwQS5f+Vym6CjHya9W0gHaZDFUXvZglgkcI7Wz8LPWfWqXkLLY+JjLN/VvpTVQJQqorP2GfdIRCH785mZdhSDhCkTsCPppUxIws7UFCJiBYdJ6SPDpr+90ELIRsPczuO2kSyUnBfPc8aog57CpSOgCkUbYDrd3ZatdfgcGL3s0Aq/N0N8wKqf98VHZJJD/jxOxw+5nBkAK4ECniab86F0HXMgEQr5Q2If86v8IkBSsnpjAb/DRxCYzJAbke+ZlC82W+hJmTqEwfkf/4fjc7SriD7MrHNRzHB9/mRJbtzTmGq4oYXJRUhOVqKo9aouAtsg=----ATTACHMENT:----ODYxODA2NTE2MTk5MzkzMiA4MDQ1MDA2OTU4MzY3NjI0IDE0MDM4NTMwNDcyMzgzMg==