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:----lCMhi0VyRKDR6TfRouvyE6Jed97/PLp531Ggn3tP5aFYZ5ZWx5TAy8Mw2TdLiK6e01FAaXcJ7Av5O2LwRGlWWMYl0fxpPk6uavW1jG3HGQEvYIGreH7+ZFWxrwWXjWlTtAEVO+UygJSu9bo6FDBWxXtH+3rM3Af7yaaNyluwGbuJkOe6DzKtUzcOxbLnRoWyIZjKDj2zc56ajIIIOkuh3ph3SfLpAqbBWDwB2LiTuhA1Dm4ApQgr47Isr+mb3ZNt96vkHzWJqVWScgRNuQVBWsIiObYfxAOnl1ORCSoeMn5H+vN2BobtN1p39hcyy8TGERXr8Os36qo6dhf6X+1LyE1gzUHA5+Cc2OKITpU6K+Lss6dtKOcFpFHcuJ+wJM0bRq81XouUrhY23YOVGc8SddlvECeQxnwDeXe8UJXhE4xXd2cGkAKvdGfkds50x957sQ38XJGGD9WQNwdtBGhpCZ/BsqrOZo4tCJJKTNwr8hsEwciYMflrJVc5YhLt/lclDKr3eMHpOGoO4KKHU0hdMFaTcBg+qAWFP4udX/GiyCWRcFnt8MRVCFmn65+x4m8ZqI1WcZ6dCzmqxDdmmwO2ZjutHVv2sqf3K4et+kF1+mL/pQNq3gaDECCelV8lV4S8Hlk94tn1AJSwIbw+fcNfSOjDzY8maO7HphAFO5Rn5GY=----ATTACHMENT:----ODY4MDQyMzk5NTE5NTQ4MSA5NTA5NDM3ODE1Mjg4OTQ5IDk3OTkxOTEwMjgzOTM4NzU=