(PHP 8 >= 8.4.0)
ReflectionClass::initializeLazyObject — Força a inicialização de um objeto lento
Força a inicialização do objeto especificado em object
. Este
método não tem efeito se o objeto não for lento ou já tenha sido
inicializado. Caso contrário, a inicialização procederá como descrito na
Sequência de
Inicialização.
Nota: Na maioria dos casos, chamar esse método é desnecessário, pois os objetos lentos se inicializam automaticamente quando seu estado é observado ou modificado.
object
Se object
for um proxy lento, retorna sua instância real.
Caso contrário, retorna o próprio object
.
Exemplo #1 Uso básico
<?php
class Example
{
public function __construct(public int $prop) {
}
}
$reflector = new ReflectionClass(Example::class);
$object = $reflector->newLazyGhost(function ($object) {
echo "Initializer called\n";
$object->__construct(1);
});
var_dump($object);
$reflector->initializeLazyObject($object);
var_dump($object);
?>
O exemplo acima produzirá:
lazy ghost object(Example)#3 (0) { ["prop"]=> uninitialized(int) } Initializer called object(Example)#3 (1) { ["prop"]=> int(1) }