function MockMethod::methodParametersForDeclaration
Returns the parameters of a function or method.
Throws
1 call to MockMethod::methodParametersForDeclaration()
- MockMethod::fromReflection in vendor/
phpunit/ phpunit/ src/ Framework/ MockObject/ Generator/ MockMethod.php
File
-
vendor/
phpunit/ phpunit/ src/ Framework/ MockObject/ Generator/ MockMethod.php, line 269
Class
- MockMethod
- @no-named-arguments Parameter names are not covered by the backward compatibility promise for PHPUnit
Namespace
PHPUnit\Framework\MockObject\GeneratorCode
private static function methodParametersForDeclaration(ReflectionMethod $method) : string {
$parameters = [];
$types = (new ReflectionMapper())->fromParameterTypes($method);
foreach ($method->getParameters() as $i => $parameter) {
$name = '$' . $parameter->getName();
/* Note: PHP extensions may use empty names for reference arguments
* or "..." for methods taking a variable number of arguments.
*/
if ($name === '$' || $name === '$...') {
$name = '$arg' . $i;
}
$default = '';
$reference = '';
$typeDeclaration = '';
if (!$types[$i]->type()
->isUnknown()) {
$typeDeclaration = $types[$i]->type()
->asString() . ' ';
}
if ($parameter->isPassedByReference()) {
$reference = '&';
}
if ($parameter->isVariadic()) {
$name = '...' . $name;
}
elseif ($parameter->isDefaultValueAvailable()) {
$default = ' = ' . self::exportDefaultValue($parameter);
}
elseif ($parameter->isOptional()) {
$default = ' = null';
}
$parameters[] = $typeDeclaration . $reference . $name . $default;
}
return implode(', ', $parameters);
}