Quando si deve lavorare sul codice scritto da altri o quando si ritorna sul proprio codice dopo un po’ di tempo, capita spesso una funzione o un oggetto di cui non ci è ben chiara la responsabilità.
A questo punto potrebbe essere utile sapere in quale file una funzione o una classe è stata definita. […]
Quando si deve lavorare sul codice scritto da altri o quando si ritorna sul proprio codice dopo un po’ di tempo, capita spesso una funzione o un oggetto di cui non ci è ben chiara la responsabilità.
A questo punto potrebbe essere utile sapere in quale file una funzione o una classe è stata definita. Oppure sapere da quale classe un oggetto è stato istanziato.
Fortunatamente a partire da PHP5 abbiamo a disposizione una serie di API per la Reflection che rendono questo compito molto semplice.
Per ottenere informazioni su una funzione:
<?php ReflectionFunction::export('nomeDellaFunzione') ?>
Per ottenere informazioni su una classe:
<?php ReflectionClass::export('nomeDellaClasse') ?>
Per ottenere informazioni su un oggetto:
<?php ReflectionObject::export($object) ?>
Un rapido esempio in un file “reflection.php”:
<?php
class Test
{
}
function Test() {
return new Test;
}
$test = Test();
echo "<pre>";
ReflectionFunction::export('Test');
ReflectionClass::export('Test');
ReflectionObject::export($test);
L’output è:
Function [ function Test ] {
@@ /var/www/reflection.php 8 - 10
}
Class [ class Test ] {
@@ /var/www/reflection.php 3-6
- Constants [0] {
}
- Static properties [0] {
}
- Static methods [0] {
}
- Properties [0] {
}
- Methods [0] {
}
}
Object of class [ class Test ] {
@@ /var/www/reflection.php 3-6
- Constants [0] {
}
- Static properties [0] {
}
- Static methods [0] {
}
- Properties [0] {
}
- Dynamic properties [0] {
}
- Methods [0] {
}
}
tag: PHP, reflection.
post correlati:
- Escape completo di una stringa ASCII con Javascript o PHP
- Sui feed RSS e le date
- Feed completi con il tag more in WordPress
- L'architettura a plugin di WordPress
- GT Post Approval [WordPress Plugin]
- Come leggere feed RSS e Atom con WordPress e la classe PHP MagpieRSS
- Eliminare i rel="nofollow" dai link nei commenti di Wordpress
Commenti.
Scrivi un commento