Febrero 03, 2005
Wiki de GTD
Acabo de toparme con un Wiki de Gettings Thing Done. Si estás metido en el asunto, anótalo en tus bookmarks o tu del.icio.us o tu servilleta. Espero que pronto pongan más contenido.
Gota a gota, los módulos se anotan
Estoy robando varias ideas de Drupal para mis próximos desarrollos. Estoy haciendo un sistema basado en los hooks y módulos de Drupal para hacer verdadera reusabilidad. Hace tiempo tenía deseos de hacer algo así porque pierdo mucho tiempo, y Drupal me ha prendido el foco — es una excelente implementación.
Paralelamente a esto aproveché que el jefe me dió carte blanche y tiempo para hacer un script que genere formularios en base a un fichero de definición (que no es más que un script PHP). Me genera un HTML con todos los elementos del formulario y un array de definiciones para validar el formulario.
La librería de formularios está basada en unas ideas de Antonio y otras ideas de Oliver. Básicamente le pasas un array con las «propiedades» de cada elemento (si debe validarse o no, si puede estar vacío o no, valores por defecto, qué función va a validar el asunto, filtros, etc) y luego llamas a forms_is_valid() y eso es todo.
Es un verdadero salvavidas. No puedo atarme los zapatos sin eso. Cuando se lo expliqué a Oliver y empezó a implementar uno con objetos (el mío es procedural) me dijo algo así como que hacerlo de la forma antigua le parecía ahora una completa pérdida de tiempo, y de veras lo es. El sólo pensar en validar un formulario a mano, elemento por elemento me parece frustrante. Y así es como lo hacen en Drupal, encima dibujando cada widget con código PHP, waaagh.
Tengo también tooltips y definiciones a un sistema de expansiones en NEdit (que son como macros, escribo «vd» y con un keystroke lo expando a «var_dump()»). Todas estas cosas en su conjunto las llamo «Acquarella,» que es una colección de librerías y hacks: Mathilde (lo de los módulos que estoy haciendo ahora), Fionna (validación de formularios), class.template.php que es una clase de templates medio desconocida, le he hecho un par de hacks y SIRVE (tiene bloques que funcionan, a diferencia de los de FastTemplate) y N scripts chiquitos que formatean código, expanden macros, etc.
Acquarella es un Unix, una colección de varias cositas. Me faltan todavía otras utilidades para lo que es SQL y tengo otras ideas en el tintero.
He visto varios frameworks pero siempre les encuentro algo que no me gusta. Tengo este problema de querer hacerlo todo a mi manera (problema que también se presenta en otras áreas de mi vida) así que por eso termino descartando cosas como el BIF, Smarty, PHPForms, etc, etc, etc.
Y todo para no tener que hacer esos aburridos formularios! ESR tenía razón:
«Hackers (and creative people in general) should never be bored or have to drudge at stupid repetitive work, because when this happens it means they aren’t doing what only they can do — solve new problems. This wastefulness hurts everybody. Therefore boredom and drudgery are not just unpleasant but actually evil.
To behave like a hacker, you have to believe this enough to want to automate away the boring bits as much as possible, not just for yourself but for everybody else (especially other hackers).»
3 Replies to “Febrero 03, 2005”
Comments are closed.
Amis, y que tiene de malo el quickform de PEAR? http://pear.php.net/package/HTML_QuickForm
Y sobre lo de automatizar te doy toda la razon. La automatizacion de tareas es lo que separa a la gente productiva del resto de la manada.
Saludos! <o/
Amis, no me gusta generar formularios con código PHP. Prefiero que la presentación HTML esté en la plantilla y toda la lógica en PHP.
Eso no significa que QuickForm sea malo, sino que no se ajusta a mi modelo de desarrollo. Prefiero separar lógica y presentación lo más posible — por eso tampoco me gusta Smarty.
Tú usas QuickForm?
Ah pues lo que entendi que hacias era algo asi, por tu comentario de "(que no es más que un script PHP)".
El html quickform lo he probado y le he dado vueltas, pero hasta ahora no lo he usado para nada en produccion, ahi meto puro formulario a mano (sera por eso que no me gusta programar en php?) :-P
Cuando veremos publicado ese script?