Ce programme récupère la liste de toutes les fonctions disponibles dans les fichiers .php et affiche dans un format lisible par les utilisateurs.
#!/usr/bin/php
<?php
chdir (dirname (__FILE__)."/..");
function dumpReflectionFunction($func, $cli=FALSE)
{
echo "".$func->getName()." ";
if (!$cli) echo "(";
// echo " déclarée dans '".$func->getFileName()."'\n";
// echo " entre les lignes ".$func->getStartLine()." et ";
// echo $func->getEndline()."\n";
foreach ($func->getParameters() as $key=>$param)
{
if ($key > 0 && !$cli) echo ",";
if ($key > 0) echo " ";
if ($param->isOptional()) echo "[";
if ($param->isPassedByReference()) echo "&";
echo $param->name;
if ($param->isOptional()) echo "]";
}
if (!$cli) echo ")";
echo "\n";
// Print documentation comment
$doc = substr ($func->getDocComment(), 4, -3);
$doc = str_replace ("\n ", "\n ", $doc);
if ($doc === "") $doc = "Fonction non documentée";
echo " Documentation:\n $doc\n";
echo "\n";
}
// Lit tous les fichiers
$fichiers = glob ("*/*.php");
foreach ($fichiers as $fichier)
{
require_once ($fichier);
}
// Pour chaque fonction utilisateur, affiche les informations
$funcs = get_defined_functions ();
$funcs = $funcs["user"];
foreach ($funcs as $function)
{
if ($function === "dumpreflectionfunction")
continue;
dumpReflectionFunction(new ReflectionFunction ($function), FALSE);
}