(PHP 8 >= 8.4.0)
ReflectionClass::initializeLazyObject — Force l'initialisation d'un objet paresseux
Force l'initialisation de l'object spécifié. Cette
méthode n'a aucun effet si l'objet n'est pas paresseux ou a déjà été
initialisé. Sinon, l'initialisation se déroule comme décrit dans la
Séquence
d'initialisation.
Note: Dans la plupart des cas, appeler cette méthode est inutile, car les objets paresseux s'initialisent automatiquement lorsqu'ils sont observés ou modifiés.
object
Si object est un proxy paresseux, renvoie son instance
réelle. Sinon, renvoie object lui-même.
Exemple #1 Utilisation basique
<?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);
?>L'exemple ci-dessus va afficher :
lazy ghost object(Example)#3 (0) {
["prop"]=>
uninitialized(int)
}
Initializer called
object(Example)#3 (1) {
["prop"]=>
int(1)
}