Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. MockMethod.php

function MockMethod::methodParametersForDeclaration

Returns the parameters of a function or method.

Throws

RuntimeException

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\Generator

Code

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);
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal