5.10.18 Réflexion
5.10 Les classes et les objets (PHP 5)
5 Référence du langage
Manuel PHP
. Introduction . ReflectionException . ReflectionFunction . ReflectionParameter . ReflectionClass . ReflectionMethod . ReflectionProperty . ReflectionExtension ->Extension des classes de réflexion
|
5.10.18.9 Extension des classes de réflexion
Dans le cas où vous voudriez créer des versions spéciales des classes
embarquées (par exemple pour créer du HTML colorisé lorsqu'il est exporté,
pour avoir un accès facile aux variables des membres au lieu des méthodes ou
pour avoir des méthodes utiles), vous devez étendre la classe.
| Extension des classes embarquées |
<?php /** * Ma classe Reflection_Method * */ class My_Reflection_Method extends ReflectionMethod { public $visibility= '';
public function __construct($o, $m) { parent::__construct($o, $m); $this->visibility= Reflection::getModifierNames($this->getModifiers()); } }
/** * Démo classe #1 * */ class T { protected function x() {} }
/** * Démo classe #2 * */ class U extends T { function x() {} }
// Affichage des informations var_dump(new My_Reflection_Method('U', 'x')); ?>
|
| Note | |
Attention
: si vous écrasez le constructeur, n'oubliez
pas d'appeler le constructeur parent
avant
d'insérer
le moindre code. Sinon, votre code produira l'erreur suivante :
Fatal error: Internal error: Failed to retrieve the reflection object
|
|