Trovare la definizione di una funzione in PHP

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. […]

PHP Reflection 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] {
  }
}
Hai trovato interessante questo articolo? Se vuoi, inscrivendoti alla newsletter, puoi ricevere una notifica ogni volta che c'è un nuovo articolo da leggere, oppure puoi sottoscrivere il feed RSS. Se non sai cos'è puoi leggere: Cos'è e come si legge un feed.
di Francesco Terenzani, 12 October 2009

post<li>

tag: , .

post correlati:


Commenti. Commenti in formato RSS

  1. Ancora nessun commento.

Scrivi un commento

XHTML: Puoi usare questi tag XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>