function ProxyBuilder::buildMethodBody

Same name and namespace in other branches
  1. 9 core/lib/Drupal/Component/ProxyBuilder/ProxyBuilder.php \Drupal\Component\ProxyBuilder\ProxyBuilder::buildMethodBody()
  2. 8.9.x core/lib/Drupal/Component/ProxyBuilder/ProxyBuilder.php \Drupal\Component\ProxyBuilder\ProxyBuilder::buildMethodBody()
  3. 11.x core/lib/Drupal/Component/ProxyBuilder/ProxyBuilder.php \Drupal\Component\ProxyBuilder\ProxyBuilder::buildMethodBody()

Builds the body of a wrapped method.

Parameters

\ReflectionMethod $reflection_method: A reflection method for the method.

Return value

string

1 call to ProxyBuilder::buildMethodBody()
ProxyBuilder::buildMethod in core/lib/Drupal/Component/ProxyBuilder/ProxyBuilder.php
Generates the string representation of a single method: signature, body.

File

core/lib/Drupal/Component/ProxyBuilder/ProxyBuilder.php, line 305

Class

ProxyBuilder
Generates the string representation of the proxy service.

Namespace

Drupal\Component\ProxyBuilder

Code

protected function buildMethodBody(\ReflectionMethod $reflection_method) {
  $output = '';
  $function_name = $reflection_method->getName();
  if (!$reflection_method->isStatic()) {
    if ($reflection_method->getReturnType() && $reflection_method->getReturnType()
      ->getName() === 'void') {
      $output .= '    $this->lazyLoadItself()->' . $function_name . '(';
    }
    else {
      $output .= '    return $this->lazyLoadItself()->' . $function_name . '(';
    }
  }
  else {
    $class_name = $reflection_method->getDeclaringClass()
      ->getName();
    $output .= "    \\{$class_name}::{$function_name}(";
  }
  // Add parameters;
  $parameters = [];
  foreach ($reflection_method->getParameters() as $parameter) {
    $parameters[] = '$' . $parameter->getName();
  }
  $output .= implode(', ', $parameters) . ');';
  return $output;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.