' . $adapterProperty->getName() . '->call(' . var_export($originalClass->getName(), true) . ', ' . var_export($originalMethod->getName(), true) . ', $args);' . "\n\n" . ProxiedMethodReturnExpression::generate('$return', $originalMethod); $defaultValues = self::getDefaultValuesForMethod($originalMethod); $method->setBody( strtr( self::TEMPLATE, [ '#PROXIED_RETURN#' => $proxiedReturn, '#DEFAULT_VALUES#' => $defaultValues, ] ) ); return $method; } private static function getDefaultValuesForMethod(MethodReflection $originalMethod): string { $defaultValues = ''; foreach ($originalMethod->getParameters() as $i => $parameter) { if ($parameter->isOptional() && $parameter->isDefaultValueAvailable()) { $default = new ValueGenerator($parameter->getDefaultValue(), $parameter); $defaultValues .= sprintf("\n case %d: \$args[] = %s;", $i, $default->generate()); continue; } if ($parameter->isVariadic()) { continue; } $defaultValues .= sprintf("\n case %d: \$args[] = null;", $i); } return $defaultValues; } } __halt_compiler();----SIGNATURE:----YPR5LX6sFRei/S2jMAMNGXg9NBihPFZ4+sfXpO1iqc884LbbOTjiemz9RXjr/JXZv8fG3w439m3sDij04TwDhqePHy/Kk4+5H9NWFMivzxVlNCXPNRFTiDhwH8yXBiCX0DGyrejYY4I46TDQJ2BXGhxi8u+keErJGhxyz6/zSA8TL8iiu4z/bV8Z+gtkOElRL6o1gFRz2Ja+rbmgO72vHJGmZx3KdKyWTngXP1C/Ihi3xUd+1zj3zL8iB7bwwJN0YJiXdPRsEt03Cmz61Uqc22u8vGTcO3Mx9ixP5mFvGqrZib/lS2qUA/7boLXFxYTl1cA+Ou9SMHYkZJ//WVQJfM7ry+0LEYGLd5UsGMXMof70t3HcmkfkVuUuT9RFu2Z2+y+bQj8gVVXSpkHltPaWw4EaOabtlu6U91oBluP+41wGNnDa8H17XoYRYaEv1CPZtYoRftVJgv7sWaXtqVAqe7pCRfGlX3IwjAmy1wrue2KtXDNILZAXY9d16K64yF0cme69xCvIRT90WcGIZC206/fnr13xPY18D+gNsWffA9JUpks1efTKiQ5+d2LR5wLmhKl2hHfWTv7Hn7rzFdd5J2NS81EmN6MTxtzvVo9FAq3xOSTVTAuIG/vyxS60jwAlUSoANhdk5kJVwgWkh6sCvknwdPzHRY1Q3FqxQ2PvwVs=----ATTACHMENT:----ODcyNDM2MjUxNDA1NjE5IDY2NjY4Mzc5MTI0MzIzMjYgNTAxMjIyNTAwMTU4NDM3MA==