A blog about data, information and Tech by Mario Alberich

        

Phing (IX) filterchains

Existen algunas tareas que se pueden encadenar unas tras otras, y cuyos resultados intermedios no son de nuestro interés.  En Unix estas operaciones se realizan normalmente con pipes. Pues bien, en Phing tenemos las filterchains, un conjunto de aplicaciones de filtros sobre una serie de contenidos que se pueden encadenar para generar un resultado final, y que el input de un proceso es el output del proceso anterior.

Incluir la cabecera de información legal


Supongamos que queremos que todo archivo de nuestro código fuente incluya la habitual cabecera de código, pero sólo lo queremos en el momento de empaquetar y publicar nuestro proyecto.

En ese caso, podemos seleccionar los archivos a modificar (con un fileset), y utilizar entonces filterchain para ejecutar la operación ReplaceTokensWithFile:

...




...

Vale sí, pero ¿esto qué hace? Pues te permite poner un texto en tu código equivalente a:

#!copyright!#

Y que, en caso que exista el archivo plantillas/copyright.php, el contenido de éste quedará automáticamente insertado en el lugar donde ha encontrado la cadena anterior.

Limpieza básica del código


Supón, por ejemplo, que te ha llegado un código fuente (o un CSV, o cualquier otro contenido textual) plagado de saltos de línea del tipo Windows (\n\r) y quieres convertirlos a saltos de línea tipo Unix (\n). Podrías hacer lo siguiente:


...






En el fondo podrías eliminar directamente "\r" (dejando replace vacío), pero de este modo te aseguras que no hay sorpresas ni cambios.

© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.