(PHP 8 >= 8.4.0)
ReflectionClass::initializeLazyObject — Forzar la inicialización de un objeto perezoso
Forzar la inicialización del object
especificado. Este
método no tiene ningún efecto si el objeto no es perezoso o ya ha sido
inicializado. De lo contrario, la inicialización se realiza como se describe
en la Secuencia
de inicialización.
Nota: En la mayoría de los casos, llamar a este método es innecesario, ya que los objetos perezosos se inicializan automáticamente cuando son observados o modificados.
object
Si object
es un proxy perezoso, devuelve su instancia
real. De lo contrario, devuelve object
mismo.
Ejemplo #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);
?>
El resultado del ejemplo sería:
lazy ghost object(Example)#3 (0) { ["prop"]=> uninitialized(int) } Initializer called object(Example)#3 (1) { ["prop"]=> int(1) }