A blog about data, information and IT, by Mario Alberich

Jul 20
2013

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.

Tags

gestión documental 10     Recuperación información 11     Linux 7     Usabilidad 5     open source 3     Tagging 12     lógica borrosa 2     fuentes de información 12     Google 6     off-topic 6     spam 2     grafos 6     Web social 11     modelización 12     Productividad 11     buscadores 2     utilidades 17     Profesionales 9     SEO 5     estándares 3     veracidad 3     relevancia 2     lingüística 2     PLN 2     lenguajes documentales 2     apis-mashups 3     reseñas 7     Flash 7     Gráficos estadísticos 13     Publicidad 3     Innovación 5     muestreo estadístico 9     PHP 14     internet 2     testeo 12     desarrollo 3     visualizacion 36     javascript 16     datos abiertos 9     elecciones 2     simulación 5     html5 7     phing 9     ssh 2     seguridad 3     indicadores 2     demografía 3     media 2     algoritmos 7     shell 4     mysql 2     backup 2     big data 6     twitter 2     d3js 11     revealjs 2     metodología 6     data-journalism 6     smartcities 2     NYT 2     privacidad 3     benchmarking 4     recopilaciones 21     magento 5     formacion 2     github 2     HHVM 3     psicología 2     angularjs 3     grep 2     nodejs 5     promises 2     mapreduce 3     crossfilter 2     exploración de datos 2     machine learning 2    

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