PHP Conference Japan 2024

ReflectionClass::resetAsLazyProxy

(PHP 8 >= 8.4.0)

ReflectionClass::resetAsLazyProxyСбрасывает и помечает объект ленивым

Описание

public ReflectionClass::resetAsLazyProxy(object $object, callable $factory, int $options = 0): void

Поведение метода аналогично методу ReflectionClass::resetAsLazyGhost(), за исключением того, что этот метод использует стратегию прокси.

Объект в аргументе object становится прокси. По аналогии с методом ReflectionClass::resetAsLazyGhost() объект не заменяется другим объектом и сохраняет идентификатор даже после инициализации. Ленивый прокси и реальный экземпляр — разные объекты, с разными идентификаторами.

Список параметров

object
Неленивый объект или инициализированный ленивый объект.
factory
Фабричная callback-функция с теми же сигнатурой и целью, что и в описании метода ReflectionClass::newLazyProxy().
options

Параметр options принимает комбинацию следующих флагов:

ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE
По умолчанию сериализация ленивого объекта запускает его инициализацию. Установка этого флага предотвращает инициализацию, что разрешает сериализовать ленивые объекты без инициализации.
ReflectionClass::SKIP_DESTRUCTOR
По умолчанию деструктор объекта, — если деструктор определили в классе, — вызывается раньше, чем метод сделает объект ленивым. Это обеспечивает безопасность в отношении предыдущих состояний объекта. Этот флаг отключает такое поведение и разрешает сбрасывать объекты до ленивых без вызова деструктора.

Возвращаемые значения

Функция не возвращает значения после выполнения.

Ошибки

Метод выбросит исключение ReflectionException, если объект ленивый и объект не инициализировали.

Метод выбросит ошибку Error, если объект инициализируется, или если свойства объекта перебираются конструкцией foreach.

Смотрите также

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top