también, alguna ves vi una chuleta de CSS rondando por el foro, o algo así... y se me ocurrió hacer lo mismo, pero en una función para que pueda ser usada en cualquier archivo con funciones estándar... (parece que también funciona con clases, pero no esta implementado)
muestra el nombre del archivo a reportar, con cada una de sus funciones excepto las que empiecen con Mayúsculas y guion_bajo; también muestra los parámetros manualmente tal y como están escritos... puede ser de gran utilidad a veces, de veras!
igualmente, los estilos son configurables con CSS, el código es modificable 100% al gusto... no se, una buena idea es: imprimir el formato como PDF :D
--
Codigo fuente:
Código PHP:
/**
* (cadena[, devolver?[, ocultar?]])
*
* Crea una "chuleta" de reporte acerca de las funciones de un script.
*/
function report($text, $ret = true, $hid = true)
{
$out = array();
//preg_match_all('/function\s+([a-z0-9_]+)\s*\(([^\{]*)\)(?=\s*[^\)])/is', $text, $test);
preg_match_all('/function\s+((?:&?\s*)?[a-z0-9_]+)\s*\(([^\{]*)\)/is', $text, $test);
ksort($test[1]);
foreach ($test[1] as $key => $val)
{ // evitamos..
if (preg_match('/^([A-Z]|_)/', $val) && $hid)
{
continue;
}
// simple...
$args = ents($test[2][$key]);
$args = preg_replace('/([\'\"])[^=\\1]*\\1/', '<span style="color:green">\\0</span>', $args); // "cadena's"
$args = preg_replace('/(true|false|null)/i', '<span style="color:purple;font-weight:bold">\\0</span>',$args); // bool's
$args = preg_replace('/\b[0-9]+\b/', '<span style="color:black;font-weight:bold">\\0</span>',$args); // numeros
$args = preg_replace('/\$[a-z0-9_]+/i', '<span style="color:darkblue">\\0</span>',$args); // $variables..
$args = preg_replace('/[a-z0-9_]+\(.*?\)/i', '<span style="color:teal">\\0</span>',$args); // funciones
$args = trim($args)? $args: $args.'<span style="color:black;font-weight:bold;font-style:italic">void</span>';
$args = preg_replace('/\s+=\s+/', ' = ', $args);
$args = preg_replace('/\s*,\s+/', ', ', $args);
$out[] = "\t<span style=\"color:orange\">[<span style=\"color:red;font-weight:bold\">$val</span> : $args]</span>";
}
$out = join("\n", $out);
if ( ! $ret)
{
echo $ret;
}
return $out;
}
Edito: actualizado y corregido