¡Salta! tm
Estadísticas de código PHP

Logotipo de PHPHace algún tiempo que hablé en esta bitácora de Codalizer, un programa escrito en PHP capaz de analizar hasta cierto punto el código fuente de archivos PHP, precisamente, contando el número de líneas, y, algunas otras cosas que ahora mismo no recuerdo. Debe ser una manía mía el enterarme de cuántas líneas de código llevo escritas en cierto proyecto (como si esto importara... todo), y de otras curiosidades, como cuántas clases se están utilizando, cuántas funciones y métodos, etc., etc.

Pues bien, el caso es que, aprovechando la función "token_get_all()", y, sobre todo, los identificadores o "tokens" disponibles, he escrito una sencilla clase que puede ofrecer no poca información acerca de un archivo PHP, o, si se prefiere, de todos los archivos PHP de un determinado directorio, y, opcionalmente, también los subdirectorios de este. La clase en cuestión, que, he dado en llamar "PStats", por "PHP Stats", pero, también por "Project stats", es muy sencilla de utilizar, y, como digo, proporciona no poca información.

Concretamente, además del número de líneas de todos los archivos PHP "encontrados", puede consultarse a la clase por el número de un identificador o "token" PHP en concreto. Por ejemplo, es posible conocer cuántos "Ifs" hay en el archivo o archivos PHP, cuántos "whiles", cuántos "foearch", cuántos "espacios", cuántas "cadenas", cuántos "enteros", cuántos "decimales",... y un largo etcétera, y aquí me remito de nuevo a la lista completa de "tokens" disponibles. Por ejemplo, puedo ofrecerte información sobre Gesbit, sobre los archivos PHP que lo componen:

Files: 214, Lines: 48408, Ifs: 1934, Fors: 25, Exits: 294, Whiles: 40, Echoes: 1017, Arrays: 1305, Issets: 100, Globals: 255, Classes: 89, Switchs: 26, Strings: 16467, Returns: 1595, Comments: 1474, Integers: 1691, Decimals: 7, Foreachs: 186, Includes: 0, Requires: 138, Methods: 1130, Inline HTML: 2772, Bad Chars: 0

Los datos que refiero arriba son todos los que son, pero, no todos los que pueden conseguirse, pues la lista de "tokens" contiene más aún, pero, me he limitado a poner unos cuantos aquí, a modo de ejemplo de la información que puede conseguirse a través de la clase "PStats" de una forma muy sencilla. Ahora, si continuas leyendo, podrás ver cómo utilizar la clase y obtener el propio código de la misma, por si te interesa jugar un poco con ella y algún proyecto tuyo.

Continuar leyendo...
Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Curioso, Software
¿Un buen "Feed parser" para PHP?

Logotipo de PHPEstoy queriendo añadir una biblioteca (no diré librería, que es lo primero que me viene a la cabeza, porque Al puede enfadarse y no es plan) desarrollada en PHP para "parsear feeds", si puede ser no sólo "RSS", pero, también "ATOM" o de otro tipo. El caso es que yo pensaba que me iba a ser más o menos sencillo encontrar alguna solución, pero, no parece tan fácil como yo creía. Por eso he pensado en escribir esta entrada a ver si alguien puede recomendarme alguna.

Alguna de las que he encontrado ya las conocía, como MagpieRSS, y luego he probado otras, como SimplePie, que también recuerdo haber probado alguna otra vez. Una nueva que he encontrado es LastRSS, y no está mal del todo, pero, ninguna de ellas me convence por varias razones. La primera no se actualiza desde hace tres años. La segunda se compone de un sólo archivo de 300 KB lleno de funcionalidades que no voy a usar.

La tercera es la que más me ha convencido, porque lo hace "a lo duro", parseando un documento sin tener en cuenta su tipo o masa, buscando las etiquetas correspodientes mediante Expresiones Regulares y retornando el contenido de las mismas. Por lo demás, LastRSS se compone únicamente de una clase (para PHP 4) implementada en un archivo de menos de 8 KB. Claro que tiene algunas "cosillas que limar", y sólo funciona con "Feeds RSS".

Total, que yo me pensaba que iba a ser más o menos sencillo incorporar una solución a mi proyecto y al cabo no ha sido así. Ahora bien, a lo que iba, ¿Usas tú alguna biblioteca que no nombrase yo aquí? ¿Usas alguna de las que nombré con buenos resultados? ¿Conoces alguna alternativa? ¿Algo hecho ya con PHP 5? Ya, ya sé que son demasiadas preguntas. Podría mirar por SourceForge, y seguir buscando por ahí, pero, me apetecía escribir y he pensado que tal vez tú, que lees esto, pudieras darme no ya una solución, pero, la solución. :)

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Opinión, Software
FCleaner, alternativa a CCleaner

Para mantener el sistema (Windows) más o menos limpio, sobre todo de archivos temporales, vengo usando el programa CCleaner, y, no está nada mal, aunque, tal vez sea hora de probar alguna alternativa, precisamente, la que he encontrado en Visual Beta, un programa de nombre muy similar: FCleaner, que, así, a ojo de buen cubero, como suele decirse, promete bastante.

Captura de las estadísticas de esta bitácora
Haz clic en la imagen para agrandarla

De momento, y, como puede apreciarse en la imagen de más arriba (agrándala si no lo ves claro) me va a librar de más de 2 GB de archivos temporales y demás morralla que está demás en el sistema. También algunas configuraciones y "cachés" varios. Este programa es bastante similar CCleaner, como cabe esperarse, pero, también en su interfaz, a la que aún no he podido echar un vistazo en profundidad. Sin embargo, algo que me ha gustado más de FCleaner es su asistente de instalación, pues no trata de "colarte" alguna que otra "barra para el navegador", como lo hace CCleaner.

Por lo demá, tras "analizar" el sistema con ambos programas, los dos encuentran la misma cantidad de espacio "basura" recuperable. La interfaz de FCleaner parece más completa, por ejemplo, me ha reconocido la instalación del navegador Google Chrome, cosa por otro lado curiosa: porque esta misma tarde he instalado, sí, este navegador, pero, lo he desinstalado al rato, lo que quiere decir, creo, que deja algunas claves en el "Registro de Windows" incluso después de su desinstalación. Precisamente, lo he desinstalado, porque he visto ejecutándose el "Google Update" y me toca las narices, qué quieres que te diga.

En fin. Echa un vistazo a FCleaner, no vaya a ser que te estés perdiendo un programa útil para tu ordenador, siempre que uses Windows, claro está. El programa es gratuito ("freeware") y en su sitio web se pueden encontrarse "paquetes de lenguaje", entre los que se incluye el español, por si te interesa. Y ahora voy a eliminar los más de 2 GB que el programa ha encontrado que puede eliminar de mi sistema. Oye, que no son pocos. ;)

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Opinión, Software
¿Con o sin las llaves? ¡No sin mi hija!

Después de un título tan absolutamente tonto, he aquí a qué viene, he aquí la simpleza:

Con llaves

if(!is_null($pluginResults)){
  foreach($pluginResults as $widgets){
    if(is_array($widgets)){
      foreach($widgets as $widget){
        if($widget instanceof GbWidget){
          $pluginWidgets[] = $widget;
        }
      }
    }else{
      if($widgets instanceof GbWidget){
        $pluginWidgets[] = $widgets;
      }
    }
  }
}

Sin llaves

if(!is_null($pluginResults))
  foreach($pluginResults as $widgets)
    if(is_array($widgets))
      foreach($widgets as $widget)
        if($widget instanceof GbWidget)
          $pluginWidgets[] = $widget;
    else
      if($widgets instanceof GbWidget)
        $pluginWidgets[] = $widgets;

¡No sin mi hija! He dicho. Vale. Tengo que irme a dormir pronto... o eso parece... ;)

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Humor
Actualiza NetBeans si ves que tal

Logotipo de NetBeansNo sólo tiene mucho más de lo que le pido a un IDE para PHP, sino que además se mantiene actualizado por sí mismo, eso sí, indicándome claramente que lo está llevando a cabo, no como el "actualizador" de los programas de Adobe, que, cuando menos te lo esperas, resulta que está ahí liado descargando cosas... hasta que lo desactivas explícitamente, y no de una forma demasiado amigable, por decirlo así. No; el actualizador de NetBeans te informa de que existen actualizaciones disponibles, y te propone descargarlas e instalarlas cuando lo estimes oportuno. Y dicho y hecho.

Parece que se actualiza todo, puesto que el entorno se compone de "plugins" y aquí puedo leer que hay actualizaciones para los plugins "Database", "IDE Platform", "NetBeans 6.5", "PHP", "Platform" y "SaaS services support". De todas formas ha sido una actualización un poco rara, porque, primero se encontraba una actualización, y, una vez instalada esta, se han encontrado las otras seis. Sea como sea todo ha ido bien, como se esperaba de la profesionalidad del equipo que ha de llevar a cabo este excelente entorno de programación. Sí; todo bien, ya puedo verlo. Tengo instalada la últimísima versión de NetBeans. ¿Y tú?

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Software
Plugin jQuery Easy Widgets

Logotipo de jQueryPensando en un principio para incorporarlo a Gesbit, te presento hoy otro plugin para la biblioteca jQuery, basado en el estupendo tutorial How to mimic the iGoogle interface, escrito por James Padolsey. Desde un principio me gustó el invento, puesto que con pocas líneas de código se llevan a cabo cosas muy curiosas. Sin embargo, encontré algunas limitaciones en el trabajo de James, sin duda, porque el tutorial está pensado para partir del mismo, y no como un trabajo completado, así que me he puesto manos a la obra, y, bueno, creo que no me ha quedado del todo mal.

Aunque he preparado una página en esta bitácora, el plugin cuenta con una especie de "mini sitio web", en el que encontrarás más información, unos cuantos ejemplos de uso, y la posibilidad de descargar Easy Widgets. También encontrarás el plugin en el sitio web de jQuery. No sé si terminaré usándolo en Gesbit o qué, aunque, existen probabilidades, primero porque creo que, como he dicho, he cumplido más o menos lo que me planteé en principio, y luego porque el plugin no es "obstrusivo", "degrada" bien, y me he encargado de probarlo en los cuatro navegadores en que pruebo Gesbit. Por lo demás, te dejo a ti que pruebes el invento, ¡y cuéntame qué tal!

Actualización: La he tomado buena... todo el día de ayer y toda la noche de hoy (y lo que va del día) han dado algunos resultados, ¡y hasta casi casi puedo decir que he puesto en marcha el asunto en Gesbit! Digo que he añadido no pocas características al plugin de que hablo en esta entrada, acaso más de la cuenta, no lo sé, porque ya estoy que no veo la pantalla. Sea como sea juzga tú mismo, he añadido nuevos ejemplos a los que ya puedes echar un vistazo, si quieres. ;)

Actualización: Un día después ya está funcionando en Gesbit el plugin. Realmente estoy contento de cómo ha tomado forma y se ha llevado a cabo este proyecto, si bien no digo con esto que esté terminado ni mucho menos, pero, digamos que me ha cundido y el esfuerzo realizado ha merecido la pena. O eso me parece a mí. ¿Eh? Vale. ;)

Iconos de agregadores Menéame Del.icio.us Digg Technorati Blinklist
Categorías: Software
« Entradas anteriores Siguientes entradas »