PHP_Beautifier 0.0.7, al aire!
La versión 0.0.7 de PHP_Beautifier ha sido lanzado en sociedad. Lo más notorio para los usuarios es la posibilidad de usar archivos tar comprimidos (.tgz o .tar.bz2) como input de la aplicación. Esto lo desarrollé, principalmente, para el web-frontend que debería aparecer para la versión 0.0.10 o, si alcanzo a desarrollar los test, para la versión 0.1 (alpha).
Como ando de ocioso, cree los UML de la aplicación, los cuales puede ver, junto al resto de la documentación, en http://clbustos.dotgeek.org.
Dentro de lo interno, lo más interesante es el uso de los custom stream wrappers o 'agarradores de afluentes personalizados', como dirían en Andalucía. Recién me acabo de enterar que existen(que vergüenza!)
Yo ya sabía que uno podía realizar operaciones de archivo (fopen, por ejemplo), con URL de los protocolos HTTP o FTP. También había visto que se podían programar en C otros protocolos. Lo que no tenía idea es que también se puede crear, desde el mismo PHP, un wrapper al protocolo que a una se le ocurra creando una clase que debe satisfacer la interface pertinente. Entonces, lo que hice fue agregar el wrapper "tarz://", evitando realizar modificaciones en la dinámica interna de la aplicación. La misma rutina que lee archivos, lee URL y, ahora, archivos comprimidos! Nice. Si alguien quiere entender, primero lea el código fuente de PHP_Beautifier_StreamWrapper_Tarz (realmente es muy sencillo) y si algo le enreda, me avisa.
¡Atención! la función stream_feof de la interface de Streams personalizados está falluta en los PHP5RC, así que es mejor ocupar, para leer archivos, algo como
do {
$buffer=fopen($fp,4096);
if (strlen($buffer)==0) break;
$total.=$buffer;
} while(true);
Un tanto arcaico, pero según el manual funciona más rápido. Uno de estos días haremos el test de velocidad.
Saludos!
- 2341 lecturas

Enviar un comentario nuevo