Buenas tardes,
Llevo poco tiempo en drupal, y hoy he empezado a crear módulos personalizados. El problema que tengo, cuando cometo algún fallo en el código me lanza este error "El sitio web encontró un error inesperado. Vuelva a intentarlo más tarde.", la gran mayoría de las veces lo he resuelto volviendo al estado anterior del código que funcionaba, pero hay veces que me sigue lanzando el error aunque vuelva a tener el código que me funcionaba. La única forma que he encontrado para solucionar es volviendo a instalar drupal.
El fallo lo estoy teniendo con los fichero de routing y links (son en los que estoy trabajando).
También he limpiado la caché del navegador, y recalcar que lo que estoy haciendo es simple y tengo ficheros y código simple.
Comments
Ayúdate de los logs
Hola fj2t, ayúdate de los logs, watchdog y logs de apache/php para tener más información del posible fallo, si no tienes datos sensibles puedes pegarlos aquí (logs y/o contenido de tu módulo) y te decimos.
Gracias
Vale, si me vuelve a pasar veré que me lanza en los logs.
Debugging en entorno LOCAL
Cuando estas desarrollando en tu entorno local (más no en el servidor de tu sitio vivo), ayuda mucho habilitar algunas configuraciones que muestra exactamente que problema esta transcurriendo debajo de ese mensaje críptico.
Hay 4 cosas que puedes hacer:
1) habilitar logs de Drupal en pantalla
$conf['error_level'] = 2;
en settings.php2) habilitar reporting de todos los errores de apache.conf
3) habilitar reporting de todos los errores de php.ini
4) instalar y habilitar xdebug stack traces en php.ini
https://www.drupal.org/docs/7/creating-custom-modules/show-all-errors-wh...
https://www.drupal.org/docs/develop/development-tools/xdebug-debugger
Luego hay otras herramientas para explorar el codigo, puedes usar los modulos "devel", "inspect", "trace", y "kint".
https://drupal.stackexchange.com/questions/32233/how-to-generate-a-stack...
Drush
Otro indispensable es tener instalado drush en tu entorno de desarrollo, ya que te permitirá ver el watchdog de drupal aunque este este fallando.
drupalconsole
No te recomiendo crear los módulos a mano, se te puede olvidar cualquier fichero, puedes tener un error en el copy/paste, etc...
Sí te recomiendo generar el módulo bien con drush bien con DrupalConsole.
Yo uso DrupalConsole que provee el comando generate:module y tardas 5 minutos, garantizado que funciona.
A partir del esqueleto que te proporciona, puedes ir añadiendo tu código poco a poco hasta localizar lo que falla.