[ Index ]

PHP Cross Reference of phpBB-3.3.14-deutsch

title

Body

[close]

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

   1  <?php
   2  
   3  declare(strict_types=1);
   4  
   5  namespace ProxyManager\ProxyGenerator\LazyLoadingGhost\MethodGenerator;
   6  
   7  use ProxyManager\Generator\MagicMethodGenerator;
   8  use ReflectionClass;
   9  use Zend\Code\Generator\MethodGenerator;
  10  use Zend\Code\Generator\PropertyGenerator;
  11  
  12  /**
  13   * Magic `__sleep` for lazy loading ghost objects
  14   *
  15   * @author Marco Pivetta <ocramius@gmail.com>
  16   * @license MIT
  17   */
  18  class MagicSleep extends MagicMethodGenerator
  19  {
  20      /**
  21       * Constructor
  22       *
  23       * @param ReflectionClass   $originalClass
  24       * @param PropertyGenerator $initializerProperty
  25       * @param MethodGenerator   $callInitializer
  26       */
  27      public function __construct(
  28          ReflectionClass $originalClass,
  29          PropertyGenerator $initializerProperty,
  30          MethodGenerator $callInitializer
  31      ) {
  32          parent::__construct($originalClass, '__sleep');
  33  
  34          $this->setBody(
  35              '$this->' . $initializerProperty->getName() . ' && $this->' . $callInitializer->getName()
  36              . '(\'__sleep\', []);' . "\n\n"
  37              . ($originalClass->hasMethod('__sleep') ? 'return parent::__sleep();' : 'return array_keys((array) $this);')
  38          );
  39      }
  40  }


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