ReflectionClass::newLazyProxy
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ReflectionClass::newLazyProxy
Референца за `reflectionclass.newlazyproxy.php` со подобрена типографија и навигација.
ReflectionClass::newLazyProxy
Класата Dom\DtdNamedNodeMap
ReflectionClass::newLazyProxy — Создава нова инстанца на мрзлив прокси
= NULL
Создава нова инстанца на мрзлив прокси од класата, прикачувајќи го
factory функцијата на него. Конструкторот не се повикува, а својствата не се поставуваат на нивните стандардни вредности. Кога првпат ќе се обидете да ја набљудувате или измените состојбата на проксито, фабричката функција се повикува за да обезбеди вистинска инстанца, која потоа се прикачува на проксито. После ова, сите последователни интеракции со проксито се препраќаат до вистинската инстанца. Види
Предизвикувачи на иницијализација and
Секвенца на иницијализација.
Параметри
factory-
Фабриката е повратен повик со следниот потпис:
object-
На
objectсе иницијализира. Во овој момент, објектот повеќе не е означен како мрзлив, а пристапот до него не предизвикува повторно иницијализирање.
options-
optionsПовик за фабрика со ист потпис и цел како во-
ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE - може да биде комбинација од следниве знаменца:
-
Вратени вредности
Враќа инстанца на мрзлив прокси. Ако објектот нема својства, или ако сите негови својства се статични или виртуелни, се враќа нормална (не-мрзлива) инстанца. Види исто така Животен циклус на мрзливи објекти.
Errors/Exceptions
Еден Грешка ако класата е внатрешна или ја проширува внатрешната класа освен stdClass.
Примери
Пример #1 Основна употреба
<?php
class Example {
public function __construct(public int $prop) {
echo __METHOD__, "\n";
}
}
$reflector = new ReflectionClass(Example::class);
$object = $reflector->newLazyProxy(function (Example $object) {
$realInstance = new Example(1);
return $realInstance;
});
var_dump($object);
var_dump($object instanceof Example);
// Triggers initialization, and forwards the property fetch to the real instance
var_dump($object->prop);
var_dump($object);
?>Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
lazy proxy object(Example)#3 (0) {
["prop"]=>
uninitialized(int)
}
bool(true)
Example::__construct
int(1)
lazy proxy object(Example)#3 (1) {
["instance"]=>
object(Example)#4 (1) {
["prop"]=>
int(1)
}
}
Види Исто така
- Објектот на кој треба да се означи својството.
- класа (други внатрешни класи не се поддржани), или да се ресетира инстанца на овие класи за да стане мрзлива. Влезните точки за создавање мрзлив објект се - Постави ја суровата вредност на својството без да се активира мрзливо иницијализирање
- (PHP 5 >= 5.1.3, PHP 7, PHP 8) - Создава нова инстанца на класа без повикување на конструкторот
- ReflectionClass::resetAsLazyGhost() - Создава нова мрзлива прокси инстанца
- ReflectionClass::initializeLazyObject() - Означува мрзлив објект како иницијализиран без повикување на иницијализаторот или фабриката
- ReflectionClass::resetAsLazyProxy() - Присилува иницијализација на мрзлив објект
- (PHP 8 >= 8.4.0) - Проверува дали објект е мрзлив и неиницијализиран
- ReflectionProperty::skipLazyInitialization() Мрзливи објекти
- Пример #3 Иницијализирање својства однапред - Го означува својството како не-мрзливо
- ReflectionProperty::isLazy() - Проверува дали својство е мрзливо