/
githubmirror
/
symfony
Обзор
Документация
Войти
/
githubmirror
/
symfony
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
8.2
src/Symfony/Component/Cache/Traits/RedisProxyTrait.php
51 строка
1 KB
Christian Flothmann
mark RedisProxyTrait as internal
16 июн 2024, 19:07
16 июн 2024, 19:07
06fe305
Код
Авторство
О чём код?
<?php /* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Cache\Traits; /** * @internal */ trait RedisProxyTrait { private \Closure $initializer; private ?parent $realInstance = null; public static function createLazyProxy(\Closure $initializer, ?self $instance = null): static { $instance ??= (new \ReflectionClass(static::class))->newInstanceWithoutConstructor(); $instance->realInstance = null; $instance->initializer = $initializer; return $instance; } public function isLazyObjectInitialized(bool $partial = false): bool { return isset($this->realInstance); } public function initializeLazyObject(): object { return $this->realInstance ??= ($this->initializer)(); } public function resetLazyObject(): bool { $this->realInstance = null; return true; } public function __destruct() { } }