Configurar Magento en modo desarrollador

En la entrada de hoy voy a contaros cómo podemos configurar Magento para depurarlo y también os mostraré un ejemplo de cómo detectar un error en un xml de configuración.
Lo que recomiendo es tener siempre configurado un Magento con el sample data, el cual podremos descargar de Magento Commerce en Magento downloads.

Para instalar un magento con el sample data:

  • Primero deberías de realizar el volcado de los datos contenidos en .sql que nos hemos descargado.
  • El siguiente paso sería instalar Magento sobre justamente la BBDD que hemos creado en el paso anterior . No va a haber ningún problema dado que los scripts de instalación detectan que las tablas ya existen y no las crean ni las eliminan.
  • El último paso sería copiar la carpeta media que te has descargado en el directorio raiz de tu Magento.

Una vez instalado nuestro Magento para realizar pruebas, vamos a proceder a configurarlo para desarrollar. Primero debemos ir al archivo index.php del directorio raiz. Como comenté en una entrada anterior, vamos a meter las dos líneas comentadas dentro del bloque condicional (if).

  1. #Varien_Profiler::enable();
  2.  
  3. if (isset($_SERVER['MAGE_IS_DEVELOPER_MODE'])) {     Mage::setIsDeveloperMode(true);
  4.  
  5. }
  6.  
  7. #ini_set('display_errors', 1);

Aquí pienso que la gente de Magento se ha olvidado de meter las dos líneas comentadas dentro del condicional, así que lo haremos nosotros. También tenemos que pasarle el parámetro en la definición del virtual host o en el .htaccess. Para el Virtual host se pasaria de la siguiente manera:

SetEnv MAGE_IS_DEVELOPER_MODE “1”

Desde el backend ahora:

  • Activar los log en sistema->configuración->(Sección) avanzado->Desarrollador

 

Activar log y prefilador en Magento
Log, perfilador Magento

 

aquí activaremos los log y el perfilador para que se vean todos los elementos que se han cargado en Magento.

Bueno, con esta configuración digamos que Magento es mucho más exigente a la hora de pasar por alto los errores; esto es una ventaja muy grande en periodos de desarrollo, pero no debe de estar activada ninguna de las opciones mencionadas anteriormente en nuestro site de producción.
Con las opciones mencionadas anteriormente Magento nos va a mostrar cualquier error de sintaxis por mínimo que sea, con lo cual si se nos olvida en algún momento cerrar algún tag de xml> Magento va a mostrarnos el error de simplexml_load_string.

Esto puede ser una ventaja a la hora de definir módulos dado que vamos a poder saber hasta dónde está llegando nuestro Magento forzando a mostrar fallo en xml. El primer sitio donde busca Magento es en app/etc/*.xml luego en app/etc/modules/*.xml y posteriormente va por cada módulo haciendo el mezclado de los archivos XML.

Ahora vamos al archivo app/etc/local.xml y vamos a quitar un tag, nos quedaría el archivo de la siguiente manera:

  1. <![CDATA[Wed, 28 Sep 2011 22:50:59 +0000]]>
  2.  
  3.  
  4. <![CDATA[d5c9458b7de99e7d6a1cdsfs88d0b]]>
  5.  
  6. ....................

y el error sería el siguiente:

  1. Fatal error: Uncaught exception 'Exception' with message 'Warning: simplexml_load_file() [&lt;a href='function.simplexml-load-file'&gt;function.simplexml-load-file&lt;/a&gt;]: file:Zend/Apache2/htdocs/local.pruebas.com/app/etc/local.xml:29: parser error :

Entonces la idea es y viendo el flujo de ejecución de Magento y ver hasta donde llega, si por ejemplo hemos definido una actualización del layout mediante la orden

  1. &nbsp;
  2.  
  3. elblogdeselo_headerblock.xml

Para saber si llega correctamente a la actualización de layout descrita en el archivo elblogdeselo_headerblock.xml, me iria a este archivo y forzaría un error del xml, entonces se podrían dar dos casos:

  • No dice nada: hay algún fallo de configuración del xml, puede que te estes equivocando en el nombre del archivo o que el archivo no exista o no esté correctamente copiado.
  • Salta error: el archivo config.xml esta correctamente configurado, el error tiene que venirte en un proceso posterior a esta etapa, tendrías que depurar en adelante.

Por último mencionaros una extensión que yo siempre incluyo en cualquier tienda en proceso de desarrollo; se trata de una barra de desarrollo bastante completa que muestra handles, controller, bloques cargados, el profiler, y desde ella puedes activar la vista de template hints, traducción en línea y reiniciar la cache. Aquí os dejo el enlace wee_developedtoolbar

Muy importante, también para el backend.

¡¡¡Espero que te haya gustado la entrada!!! :)


3 comentarios sobre “Configurar Magento en modo desarrollador”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *