[ Index ]

PHP Cross Reference of phpBB-3.3.11-deutsch

title

Body

[close]

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

   1  <?php
   2  
   3  declare(strict_types=1);
   4  
   5  namespace ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator;
   6  
   7  use ProxyManager\Generator\MagicMethodGenerator;
   8  use ProxyManager\ProxyGenerator\AccessInterceptorScopeLocalizer\MethodGenerator\Util\InterceptorGenerator;
   9  use ProxyManager\ProxyGenerator\Util\GetMethodIfExists;
  10  use ReflectionClass;
  11  use Zend\Code\Generator\PropertyGenerator;
  12  
  13  /**
  14   * Magic `__sleep` for lazy loading ghost objects
  15   *
  16   * @author Marco Pivetta <ocramius@gmail.com>
  17   * @license MIT
  18   */
  19  class MagicSleep extends MagicMethodGenerator
  20  {
  21      /**
  22       * Constructor
  23       *
  24       * @param ReflectionClass   $originalClass
  25       * @param PropertyGenerator $prefixInterceptors
  26       * @param PropertyGenerator $suffixInterceptors
  27       */
  28      public function __construct(
  29          ReflectionClass $originalClass,
  30          PropertyGenerator $prefixInterceptors,
  31          PropertyGenerator $suffixInterceptors
  32      ) {
  33          parent::__construct($originalClass, '__sleep');
  34  
  35          $parent = GetMethodIfExists::get($originalClass, '__sleep');
  36  
  37          $callParent = $parent ? '$returnValue = & parent::__sleep();' : '$returnValue = array_keys((array) $this);';
  38  
  39          $this->setBody(InterceptorGenerator::createInterceptedMethodBody(
  40              $callParent,
  41              $this,
  42              $prefixInterceptors,
  43              $suffixInterceptors,
  44              $parent
  45          ));
  46      }
  47  }


Generated: Sat Nov 4 14:26:03 2023 Cross-referenced by PHPXref 0.7.1