public static function PHPUnit_Util_Class::getMethodParameters

Returns the parameters of a function or method.

@since Method available since Release 3.2.0

Parameters

ReflectionFunction|ReflectionMethod $method:

boolean $forCall:

Return value

string

2 calls to PHPUnit_Util_Class::getMethodParameters()

File

drupal/core/vendor/phpunit/phpunit/PHPUnit/Util/Class.php, line 133

Class

PHPUnit_Util_Class
Class helpers.

Code

public static function getMethodParameters($method, $forCall = FALSE) {
  $parameters = array();
  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 = '';
    $typeHint = '';
    if (!$forCall) {
      if ($parameter
        ->isArray()) {
        $typeHint = 'array ';
      }
      else {
        if (version_compare(PHP_VERSION, '5.4', '>') && $parameter
          ->isCallable()) {
          $typeHint = 'callable ';
        }
        else {
          try {
            $class = $parameter
              ->getClass();
          } catch (ReflectionException $e) {
            $class = FALSE;
          }
          if ($class) {
            $typeHint = $class
              ->getName() . ' ';
          }
        }
      }
      if ($parameter
        ->isDefaultValueAvailable()) {
        $value = $parameter
          ->getDefaultValue();
        $default = ' = ' . var_export($value, TRUE);
      }
      else {
        if ($parameter
          ->isOptional()) {
          $default = ' = null';
        }
      }
    }
    if ($parameter
      ->isPassedByReference()) {
      $reference = '&';
    }
    $parameters[] = $typeHint . $reference . $name . $default;
  }
  return join(', ', $parameters);
}