[ Index ] |
PHP Cross Reference of phpBB-3.3.14-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 3 declare(strict_types=1); 4 5 namespace ProxyManager\ProxyGenerator\LazyLoading\MethodGenerator; 6 7 use ProxyManager\Generator\MethodGenerator; 8 use ProxyManager\ProxyGenerator\Util\Properties; 9 use ProxyManager\ProxyGenerator\Util\UnsetPropertiesGenerator; 10 use Zend\Code\Generator\ParameterGenerator; 11 use Zend\Code\Generator\PropertyGenerator; 12 13 /** 14 * The `staticProxyConstructor` implementation for lazy loading proxies 15 * 16 * @author Marco Pivetta <ocramius@gmail.com> 17 * @license MIT 18 */ 19 class StaticProxyConstructor extends MethodGenerator 20 { 21 /** 22 * Static constructor 23 * 24 * @param PropertyGenerator $initializerProperty 25 * @param Properties $properties 26 * 27 * @throws \Zend\Code\Generator\Exception\InvalidArgumentException 28 */ 29 public function __construct(PropertyGenerator $initializerProperty, Properties $properties) 30 { 31 parent::__construct('staticProxyConstructor', [], static::FLAG_PUBLIC | static::FLAG_STATIC); 32 33 $this->setParameter(new ParameterGenerator('initializer')); 34 35 $this->setDocBlock("Constructor for lazy initialization\n\n@param \\Closure|null \$initializer"); 36 $this->setBody( 37 'static $reflection;' . "\n\n" 38 . '$reflection = $reflection ?? $reflection = new \ReflectionClass(__CLASS__);' . "\n" 39 . '$instance = $reflection->newInstanceWithoutConstructor();' . "\n\n" 40 . UnsetPropertiesGenerator::generateSnippet($properties, 'instance') 41 . '$instance->' . $initializerProperty->getName() . ' = $initializer;' . "\n\n" 42 . 'return $instance;' 43 ); 44 } 45 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Mon Nov 25 19:05:08 2024 | Cross-referenced by PHPXref 0.7.1 |