' . $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:----iVOCqhZVs1wxuC80apnTsRTgz94i02lT+AG+uztldUZMwQRtnoTKysu/cDusS0mouoCkAJB86bugILl+ivPioqqHmDyooX9yRrbaI+KLcsocS1ZDsaExLCiT1wBALjZvo62pDzLuB2WK7t/vadFLGk8XIOt0PdAEcz5UO3PXCk7OOy7riS5XLs2OmxzH3Gx48N55tPATRhbw6uwN/028juBYZPqLx8UOo4SEqQZbE3TtC1UCoF6oZLlg0WodEDYM9Hcg7kRu6fUEaIDak6aa8YkOVD6ZB4eT3CHmz5ndPpmsMTqV+E5CSpy1V+QKQPd0kNkinNkqBafmc9IOKEBrXHdMNX72aGVrDcn5A3uo6ezjsVIBF4E5C2BWqUU0XnU9LJg3GDQNPC3uw/bj6g43kdaveuNb9tmB5I1/6LXOiDgxL+LoRSyJNcu7X3f/QFPysfvuRptm0JMBg0eIrUFOKirT4i9CXYkY5IghN2Gsx4gt3nd3mcViLemxVsBzvb32nO3mZmaguPkUdLkH4xM3uUsBdKAXzCpLkqIWBdXnf8TNYoBXa1IIt+FcwdSe2F4kkSujVfxydW5+/8b1itI5tXShfGK1HZGFiouLCn0NX0bGLEPW0QtGJ/UhGka6q4OhskMQLc3IKOZ0jy+qhRwUdWfUADwRWxorWUsS2fBl4LY=----ATTACHMENT:----NDQ4OTI0OTM4NjMwOTQxIDY2NTA2MjgxNDM2ODQyNTUgMzAxMTYwMjMxOTk5MTExOQ==