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:----OETjHoOtMBtUr5nN4iQU8qZ74b7tojR5x0McNwPL+rwV8pS3P3am/YoDZrL9paFf3YuA1k/gyad2X+A19l8AvopEzh4xkbCHjM4qCNVLS1WLW3ZUCcn+Chx0KFXqbF3jxz1QX5ENb2oa08YYQ5ePS2Y5/VFJ5dMyGXHbsI/C3VThBUDLIn1e1zC5Sk64f6E1/09Y9J3ueQGTUiQMeiYXsy0POzsV6Go0S9rW+AqqfwfwzkIUQnHmHAYUPh5HWkls5x3yJf1AVTfumwebY/10wSvWOrLoWRYdm5aBJXuxOGpSqyg9sZ9K0wZ9liUgWlrSsk0e5uh/ItRuRKikdKsVfoZ/Ah7GL/UllwkWUgao1gYxc2pgInvlAAvoulHX+hHKfzLR2WvJeyttnZz6Lfzq8Pof4gf4V9c+C6XH1yQi7hdFB9HLnJ/ZZCKkSgu1i+VM1Mpx05vjrprNOQhAHuAEVY2u6Lw+ohT/UsknWlFtw/i13z0e2mfMaMu/tRMDFmp7/NXKvqhXaI6aJDpLMKl1eiXud0G08/0VxWWJTocjUrEFLxcFmlwJQxMvjxy4PntO65rfqoFOgQUeiuxcgUUo0lriHUMr5H51PZkc3pXjQBskbNs0eG5POFcJfHKfJUVj4UtXNYkOTiNDiiiD4nzzkW4fHDNl1EXeaPP5ilkUcFI=----ATTACHMENT:----ODcxMjQ4MDc0NDM5NTYwIDgzNzk4MzcwMzg4NDM1MCA2MDAzMTI5NTE0NzI1Mw==