function ClassCodeGenerator::generateArguments
Parameters
list<Node\ArgumentNode> $arguments:
Return value
list<string>
1 call to ClassCodeGenerator::generateArguments()
- ClassCodeGenerator::generateMethod in vendor/
phpspec/ prophecy/ src/ Prophecy/ Doubler/ Generator/ ClassCodeGenerator.php
File
-
vendor/
phpspec/ prophecy/ src/ Prophecy/ Doubler/ Generator/ ClassCodeGenerator.php, line 98
Class
- ClassCodeGenerator
- Class code creator. Generates PHP code for specific class node tree.
Namespace
Prophecy\Doubler\GeneratorCode
private function generateArguments(array $arguments) : array {
return array_map(function (Node\ArgumentNode $argument) {
$php = $this->generateTypes($argument->getTypeNode());
$php .= ' ' . ($argument->isPassedByReference() ? '&' : '');
$php .= $argument->isVariadic() ? '...' : '';
$php .= '$' . $argument->getName();
if ($argument->isOptional() && !$argument->isVariadic()) {
$default = var_export($argument->getDefault(), true);
// This is necessary for PHP 8.1, as enum cases are exported without a leading slash in this version
if ($argument->getDefault() instanceof \UnitEnum && 0 !== strpos($default, '\\')) {
$default = '\\' . $default;
}
$php .= ' = ' . $default;
}
return $php;
}, $arguments);
}