Enlaces e información
Comenta lo que creas oportuno.
Ayuda a la depuración
Esto que voy a contar no es nada nuevo, lo que pasa es que lo estoy utilizando intensivamente y con ello estoy desarrollando más fácilmente. Son técnicas para depurar aplicaciones:
Ruby On Rails:
Lo que más me está ayudando es correr la aplicación en un mongrel sobre Linux y ejecutar en una consola lo siguiente (cambiando RAILS_ROOT por el directorio donde esté la apliación:
tail -f {RAILS_ROOT}/log/devlopment.log
E incluir el siguiente código, cuando quiera notificar algo para verlo en el log:
logger.debug ( "Texto de depuración")
Esto me permite que, mientras estoy ejecutando la aplicación voy viendo, en tiempo real, el resultado de la ejecución de dicha aplicación.
Drupal
Drupal está desarrollado en PHP, por lo que cualquier técnica de depuración válida en PHP lo será para Drupal. Lo que ocurre es que hay una serie de herramientas muy útiles a la hora de depurar. La primera es un módulo denominado Devel, con él podremos ver fácilmente las llamadas a la base de datos, ciertos parámetros de los formularios, etc. Lo más interesante de este módulo es una función denominada: dpr. Es similar a print_r, con la ventaja de que formatea la salida, indentando los arrays, haciendo más fácil su lectura.
El otro grave inconveniente de la depuración de código de Drupal es el sistema de hooks para implementar llamadas. Este sistema permite implementar una función personal que será llamada en vez de la habitual del core de Drupal. Esto facilita mucho el adaptar Drupal a necesidades particulares en aquellos elementos que se quieran retocar, dejando el resto a su implementación por defecto.
El problema, es que las llamadas a funciones no tienen porque coincidir con el nombre de la función, siendo muy difÃcil, con una simple búsqueda al código, saber qué función llamó a cual otra. Para solventar este problema y saber cual es el proceso de llamadas hasta una determinada función, yo recomiendo utilizar la función PHP: debug_backtrace() que devuelve un Array con la información de las llamadas a funciones anteriores.
Esta función, unida a la anteriormente mencionada:
dpr(debug_backtrace());
Facilita mucho el seguimiento de ejecución de las funciones en Drupal.