getName(); $valueHolderName = $valueHolderProperty->getName(); $parameters = $originalMethod->getParameters(); $methodName = $originalMethod->getName(); $initializerParams = []; $forwardedParams = []; foreach ($parameters as $parameter) { $parameterName = $parameter->getName(); $variadicPrefix = $parameter->isVariadic() ? '...' : ''; $initializerParams[] = var_export($parameterName, true) . ' => $' . $parameterName; $forwardedParams[] = $variadicPrefix . '$' . $parameterName; } $method->setBody( '$this->' . $initializerName . ' && ($this->' . $initializerName . '->__invoke($' . $valueHolderName . ', $this, ' . var_export($methodName, true) . ', array(' . implode(', ', $initializerParams) . '), $this->' . $initializerName . ') || 1)' . ' && $this->' . $valueHolderName . ' = $' . $valueHolderName . ";\n\n" . ProxiedMethodReturnExpression::generate( '$this->' . $valueHolderName . '->' . $methodName . '(' . implode(', ', $forwardedParams) . ')', $originalMethod ) ); return $method; } } __halt_compiler();----SIGNATURE:----O7/jvjU1DfePZwSorqo1ps7ewnepOnVLAL9sX6b7XxrVYmnDsDYTwXtT2DdONfkD5/qzIHnRLm3/woGYphsN4exl8n9UyXfJKy+zWA59vokmLSVippU1tcP77yIc9Dk4cPif+GriitMFa9nU8T4gj7thD4f3LWUD5zNBgzebHoevoju+lSPYa3XyAIDNVG3P45qJkAehHkTCRq2181njfESRq6ETGwE56MBlN0qPV1rbi42/A/TgxzsCQW7OFJU/9m+BOB2AdpdSn3QickJ7W4HRBXG/AM3wnGzyX+yDiRfd7u8TPjvFtXlxMPOPZ9jAkGenqqxH/DbzAzO0o+CUJvfq3eaKwGOCL8FP71G34e/UgXT5fMWlYcnvtxjVogt0Vn3/j/IpJlVyIVERn5tGr5yTlKL1yY7hYS4zjM8Rdh48Huy2Hqjt6nRKVuT3vmBRiLDknmyMkIuGbKCO2KLF+STyiVE6vwYbQ01OaeTlzqllxIqyTOL5MGFqX/yf4jHBZfvx91rDl3ZCcvZORh4Lg7w5bCpvNvJ+TpYkr7FbvhYZnMsJWKrCu/nnf7hH/F28LzGBpPwb0FS2kRzgWLRZuKdJPBCOX6EDM202JtYNSyUw9fQ6O33cTaPQApo12LeHw4k7XjVm16yVUnv/uwH3/CEhC86q41ugAySaOPDoWw8=----ATTACHMENT:----ODAxMzY2MjU4OTQwNTA0MSA5NzA5MDYxMjgwNDc1NTQgNjE4MjAwMjU2NDEwNzYyNA==