Cómo obtener la versión de un módulo en Magento

Podría darse el caso en el cual necesitemos obtener información de un módulo para tomar ejecutar ciertas acciones.

Definitivamente es un escenario pensado para cuando creamos extensiones. Para el caso de un desarrollo completo, nuestro control del código y de la tienda es total.

Supongamos entonces que tenemos al ya ultra trillado módulo Dc_Test. Vamos a considerar que nuestro módulo se encarga de interactuar o incluso modificar algún comportamiento del módulo Mage_Newsletter.

No recuerdo ahora las versiones, pero si que tuve que lidiar alguna vez con modelos de ese módulo, que de una versión a otra habían sido eliminados.

La solución ante ese escenario sería reescribir el código de forma tal que funcione de la misma forma sin importar la versión, pero ¿y si existiera un caso en el cual esto no fuera posible?.

Si llegáramos a éste punto, lo que podemos hacer es validar la versión del módulo con el que estamos trabajando. De ésta forma podríamos invocar una acción u otra según las versiones, puntualmente, conflictivas.

Para obtener ese dato sólo necesitamos ejecutar una función.

echo Mage::getConfig()->getModuleConfig('Mage_Newsletter')->version;

El resultado de la llamada sería: 0.8.3.

Además de ésta información, podemos validar si el módulo se encuentra activo, ver en que pool se encuentra el módulo y, además, preguntar por las dependencias del mismo.

echo Mage::getConfig()->getModuleConfig('Mage_Newsletter')->active;

Nos mostrará: true.

echo Mage::getConfig()->getModuleConfig('Mage_Newsletter')->codePool;

Y en éste caso: core.

Un pequeño tip que puede llegar a ahorrar algunas horas de coding.