[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

/vendor/ocramius/proxy-manager/src/ProxyManager/ProxyGenerator/RemoteObject/MethodGenerator/ -> RemoteObjectMethod.php (source)

   1  <?php
   2  
   3  declare(strict_types=1);
   4  
   5  namespace ProxyManager\ProxyGenerator\RemoteObject\MethodGenerator;
   6  
   7  use ProxyManager\Generator\MethodGenerator;
   8  use ProxyManager\Generator\Util\ProxiedMethodReturnExpression;
   9  use ReflectionClass;
  10  use Zend\Code\Generator\PropertyGenerator;
  11  use Zend\Code\Reflection\MethodReflection;
  12  use function var_export;
  13  
  14  /**
  15   * Method decorator for remote objects
  16   */
  17  class RemoteObjectMethod extends MethodGenerator
  18  {
  19      /**
  20       *
  21       * @return self|static
  22       */
  23      public static function generateMethod(
  24          MethodReflection $originalMethod,
  25          PropertyGenerator $adapterProperty,
  26          ReflectionClass $originalClass
  27      ) : self {
  28          /** @var self $method */
  29          $method = static::fromReflectionWithoutBodyAndDocBlock($originalMethod);
  30  
  31          $method->setBody(
  32              '$return = $this->' . $adapterProperty->getName()
  33              . '->call(' . var_export($originalClass->getName(), true)
  34              . ', ' . var_export($originalMethod->getName(), true) . ', \func_get_args());' . "\n\n"
  35              . ProxiedMethodReturnExpression::generate('$return', $originalMethod)
  36          );
  37  
  38          return $method;
  39      }
  40  }


Generated: Mon Nov 25 19:05:08 2024 Cross-referenced by PHPXref 0.7.1