(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) }