Foros del Web » Programando para Internet » PHP »

[APORTE] Chuleta de funciones!

Estas en el tema de [APORTE] Chuleta de funciones! en el foro de PHP en Foros del Web. Que tal... apenas que estaba trabajando con un framework que estoy desarrollando me di cuenta que hay momentos que uno no recuerda ni sus propias ...
  #1 (permalink)  
Antiguo 02/09/2008, 00:45
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
[APORTE] Chuleta de funciones!

Que tal... apenas que estaba trabajando con un framework que estoy desarrollando me di cuenta que hay momentos que uno no recuerda ni sus propias funciones, incluso... el orden y uso de cada parámetro, cosas simples... pues

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+/''&nbsp;=&nbsp;'$args);
        
$args preg_replace('/\s*,\s+/'',&nbsp;'$args);
        
        
$out[] = "\t<span style=\"color:orange\">[<span style=\"color:red;font-weight:bold\">$val</span>&nbsp;:&nbsp;$args]</span>";
    }

    
$out join("\n"$out);

    if ( ! 
$ret)
    {
        echo 
$ret;
    }
    return 
$out;


Edito: actualizado y corregido
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 29/11/2008 a las 02:54
  #2 (permalink)  
Antiguo 05/09/2008, 11:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: [APORTE] Chuleta de funciones!

hola, he actualizado el POST ... (espero que alguien lo lea)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 05/09/2008, 14:25
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
Respuesta: [APORTE] Chuleta de funciones!

Muchas gracias por el aporte, he guardado el file. Podrás postear el CSS ya que estás así nos queda también. Gracias por el código!
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #4 (permalink)  
Antiguo 05/09/2008, 18:38
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 17 años, 1 mes
Puntos: 101
Respuesta: [APORTE] Chuleta de funciones!

Hola,
Muchisimas gracias por el aporte.
Suerte
Salu2
__________________
Half Music - www.halfmusic.com
  #5 (permalink)  
Antiguo 05/09/2008, 21:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: [APORTE] Chuleta de funciones!

okas.... pero como no hay [css][/css] :P

CSS
Código:
.cloud
{
	margin: .4em;
	font-size: .8em;
	font-family: arial;
	line-height: 1.1em
}
.cloud .name 
{
	float: right;
	margin: 1em;
	font-size: 1.4em;
	color: darkmagenta;
}
.cloud .function
{
	color: darkblue;
	font-style: italic;
	font-weight:bold;
}
.cloud .string
{
	color: orange;
}
.cloud .var
{
	color: green;
}
.cloud .const
{
	color: violet;
}
.cloud .void
{
	font-weight: bold;
	font-style: italic;
}
.cloud .par,
.cloud .mid
{
	color: red;
	font-weight: bold;
}
.cloud .key
{
	color: teal;
	font-style: italic;
}
...esos son los estilos que se ven en el screenshot (espero)

suerte!


PDTA: el enlace del archivo fue removido definitivamente, es mejor publicar directo aquí.... xD
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 05/09/2008 a las 21:39
  #6 (permalink)  
Antiguo 29/11/2008, 02:56
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: [APORTE] Chuleta de funciones!

je... tenia unos bugs...

no parseaba las funciones con el operador & de referencia..
tampoco los números enteros y con punto flotante
ahora separa (gracias a &nbsp;) cada función

lo siento por los CSS :(



bueno, se preguntaran ¿..y esto de que sirve ??

según yo, a veces olvidamos las funciones de nuestras (u otras) librerías, es como generar un cheat sheet de algún script que leamos ... solo eso, nos muestra el nombre y parámetros contenidos... con resaltado de sintaxis simple

por ejemplo, yo imprimo mis funciones así y los pego frente a mi área de trabajo ... se ve nerd, pero funciona! (al menos para mi)

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Última edición por pateketrueke; 29/11/2008 a las 03:13
  #7 (permalink)  
Antiguo 09/12/2008, 06:16
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 20 años
Puntos: 6
De acuerdo Respuesta: [APORTE] Chuleta de funciones!

buenas...che o estoy muy dormido o no se jeje. pero no entiendo que es eso que posteaste ejej. chuleta ? y ese termino ? bue me gustaria si me peudes decir un ejemplo de como uss eso y para que sirve, gracias.
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #8 (permalink)  
Antiguo 09/12/2008, 07:12
Avatar de Pedro_valencia  
Fecha de Ingreso: diciembre-2007
Ubicación: Valencia
Mensajes: 82
Antigüedad: 16 años, 10 meses
Puntos: 6
Respuesta: [APORTE] Chuleta de funciones!

Chuleta es como decir un apunte sobre las diversas funciones.
  #9 (permalink)  
Antiguo 11/12/2008, 09:30
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 20 años
Puntos: 6
De acuerdo Respuesta: [APORTE] Chuleta de funciones!

bien muchas gracias.
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
  #10 (permalink)  
Antiguo 11/12/2008, 09:32
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 20 años
Puntos: 34
Respuesta: [APORTE] Chuleta de funciones!

Cita:
Iniciado por aldo1982 Ver Mensaje
buenas...che o estoy muy dormido o no se jeje. pero no entiendo que es eso que posteaste ejej. chuleta ? y ese termino ? bue me gustaria si me peudes decir un ejemplo de como uss eso y para que sirve, gracias.
Cita:
Iniciado por pateketrueke
bueno, se preguntaran ¿..y esto de que sirve ??

según yo, a veces olvidamos las funciones de nuestras (u otras) librerías, es como generar un cheat sheet de algún script que leamos ... solo eso, nos muestra el nombre y parámetros contenidos... con resaltado de sintaxis simple

por ejemplo, yo imprimo mis funciones así y los pego frente a mi área de trabajo ... se ve nerd, pero funciona! (al menos para mi)
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #11 (permalink)  
Antiguo 01/12/2010, 00:45
 
Fecha de Ingreso: noviembre-2010
Mensajes: 6
Antigüedad: 14 años
Puntos: 0
Respuesta: [APORTE] Chuleta de funciones!

Hola, disculpen pero que es CHULETA?, aveces sin darnos cuenta usamos modismos..y para gente de otros paises ....en este caso como yo xD me cuesta entender el contexto de lo que explican :(
  #12 (permalink)  
Antiguo 01/12/2010, 06:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: [APORTE] Chuleta de funciones!

Cita:
Iniciado por TaniaMaria Ver Mensaje
Hola, disculpen pero que es CHULETA?, aveces sin darnos cuenta usamos modismos..y para gente de otros paises ....en este caso como yo xD me cuesta entender el contexto de lo que explican :(
en inglés -y creo que ya se había dicho por aquí- significa cheat sheet, osea una hoja de trucos, de las cuales rondan varias en internet para Regex, jQuery, PHP, HTML, etc..
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 16/02/2011, 07:22
Avatar de bNd170  
Fecha de Ingreso: agosto-2009
Ubicación: $this->setLocation('Valencia', 'Spain');
Mensajes: 365
Antigüedad: 15 años, 2 meses
Puntos: 13
Respuesta: [APORTE] Chuleta de funciones!

pateketrueke, la funcion ents (Supongo que será de arguments) no está definida, la he buscado por internet pero no he logrado encontrar gran cosa, podrias decirme que hace?
  #14 (permalink)  
Antiguo 16/02/2011, 09:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: [APORTE] Chuleta de funciones!

Cita:
Iniciado por bNd170 Ver Mensaje
pateketrueke, la funcion ents (Supongo que será de arguments) no está definida, la he buscado por internet pero no he logrado encontrar gran cosa, podrias decirme que hace?
lo siento, en realidad ents() es mi propia versión extendida de htmlentities() que tiene la ventaja de no romper entidades previamente codificadas...
Código PHP:
/**
 * Reparar entidades
 *
 * @param  string  $text Cadena
 * @param  boolean $html Escapar xHTML?
 * @return string
 */
function ents($text$html FALSE)
{
//--
    
$hash uniqid('--entity-backup');
    
$text preg_replace('/&([a-z0-9;_]+)=([a-z0-9_]+)/i'"{$hash}\\1=\\2"$text);

    
$expr = array(
            
'/(&#?[0-9a-z]{2,})([\x00-\x20])*;?/i' => '\\1;\\2',
            
'/&#x([0-9a-f]+);?/ei' => 'chr(hexdec("\\1"))',
            
'/(&#x?)([0-9A-F]+);?/i' => '\\1\\2;',
            
'/&#(\d+);?/e' => 'chr("\\1")',
    );

    
$text preg_replace(array_keys($expr), $expr$text);
    
$text preg_replace('/&(#?[a-z0-9]+);/i'"{$hash}\\1;"$text);
    
$text str_replace(array('&'chr(92), $hash), array('&amp;''&' '#92;''&'), $text);

    if (
$html === TRUE)
    {
        
$text strtr($text, array(
                
'<' => '&lt;',
                
'>' => '&gt;',
                
'"' => '&quot;',
                
"'" => '&' '#34;',
        ));
    }

    
$text preg_replace("/[\200-\237]|\240|[\241-\377]/"'\\0',$text);
    
$text preg_replace("/{$hash}(.+?);/"'&\\1;'$text);
  
    return 
$text;

aunque básicamente funciona como htmlentites()
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 4 personas




La zona horaria es GMT -6. Ahora son las 16:00.