El desarrollo de módulos personalizados de Magento es una parte fundamental de cualquier proyecto de Magento o de desarrollo de Magento, ya que en cualquier etapa es posible que desee integrar su propia funcionalidad / módulo en su proyecto Magento existente.
En esta serie, cubriré los detalles del desarrollo de módulos personalizados de Magento..
Si desea ir más lejos con su desarrollo de Magento, consulte la amplia gama de extensiones de Magento en Envato Market..
Extensiones de Magento en Envato MarketA lo largo de esta serie, me refiero a Magento Community Edition 1.7, aunque las estructuras de módulos personalizados son las mismas en todas las versiones de Magento. Antes de comenzar, vamos a iniciar el desarrollo real del módulo, entendamos rápidamente la estructura básica de Magento.
Cada vez que instale un Magento nuevo, notará la siguiente estructura de directorios de Magento:
Como cualquier otro marco importante como Joomla, CakePHP, CodeIgniter, etc., Magento también sigue la arquitectura basada en MVC, aunque es un poco diferente a la arquitectura central de PHP MVC. Aquí, explicaré la diferencia en la arquitectura de Magento comparándola con la arquitectura simple de PHP MVC..
En el patrón típico de MVC, el flujo de la aplicación es algo como esto:
index.php
- desde donde se determina todo el mecanismo de enrutamiento de la aplicación.La arquitectura MVC de Magento agrega algunas capas al patrón MVC, pero el flujo básico de control de una aplicación es así:
index.php
- desde donde se inicializará toda la aplicación.Inicialmente, esto puede ser difícil de entender ya que contiene algunas capas adicionales. Para familiarizarse con el flujo de control, desarrollemos un módulo personalizado "Hello World".
Magento contiene tres tipos de grupos de códigos donde residen todos los módulos principales y personalizados de Magento.
Por lo tanto, tenemos dos opciones de piscinas: Comunidad o Local. Ya que estamos trabajando en nuestro propio proyecto, usaremos un grupo local, aunque no hay ninguna restricción para usar el grupo comunitario, tampoco.
Estructura
Los módulos de Magento constan de los siguientes componentes:
Necesitamos darle un nombre a nuestro módulo. En general, los nombres de los módulos de Magento se componen de dos partes:
como autor o nombre de una empresa y
como un nombre de módulo real.
Basado en esta convención de nombres, le doy a nuestro módulo la Chiragdodia_Mymodule nombre. Haremos referencia a este nombre a lo largo de esta serie..
Permite crear la base de directorios en la estructura anterior. Vaya a la dirección de instalación de Magento y luego navegue hasta aplicación / código / local
y crea los directorios como se muestra abajo.
A continuación, configuraremos y activaremos nuestro módulo creando un archivo de configuración. Chiragdodia_Mymodule.xml
en el app / etc / modules
directorio. Este directorio contiene archivos de configuración para todos los módulos..
cierto local
Este archivo le informará a Magento sobre la ubicación de nuestro módulo. En el activo
etiqueta, hemos especificado cierto
Para habilitar nuestro módulo. Si todo está correcto hasta ahora, entonces encontrará su módulo en el Panel de administración de Magento> Sistema> Configuración> Avanzado> Avanzado> Desactivar salida de módulos lista. Desde aquí puedes habilitar y deshabilitar tu módulo..
A continuación vamos a crear nuestro archivo de configuración del módulo. Este archivo le dirá a Magento todo sobre nuestro módulo. Esto incluye cuántos archivos contiene nuestro módulo, qué tipo de archivos (modelos, ayudantes, clases de base de datos), etc..
Ir app / code / local / Chiragdodia / Mymodule / etc
y crea un config.xml
archivo que contendrá el siguiente contenido
0.1.0 Chiragdodia_Mymodule mymodule
Vayamos línea por línea para entender cada etiqueta. Aquí, la primera etiqueta es
que contiene el nombre y la versión de nuestro módulo. El número de versión es muy importante a la hora de actualizar su módulo actualizar su módulo.
los
La etiqueta le dirá a Magento sobre el controlador despachado. Dentro de
etiqueta, hemos definido
Eso le dice a Magento cómo acceder a nuestros controladores a través del mecanismo de enrutamiento.
En el
etiqueta, hemos definido el nombre del módulo en
etiqueta y nombre de frontend en
. Al usar un nombre de frontend, podemos acceder a nuestro módulo en frontend como yoursitename.com/index.php/mymodule/index
.
Llamando yoursitename.com/index.php/mymodule
o yoursitename.com/index.php/mymodule/index
Magento buscará la acción de índice del archivo del controlador de su módulo. Como tal, necesitamos crear nuestro archivo controlador.
Ir app / code / local / Chiragdodia / Mymodule / controllers
y crear archivo IndexController.php
con el siguiente contenido.
Tenga en cuenta que el nombre y la clase de cada archivo distinguen entre mayúsculas y minúsculas en Magento. Es muy importante que tenga cuidado al nombrar su trabajo al crear archivos y clases..
Ahora abre la URL
yoursite.com/index.php/mymodule/index
se imprimirá "Hola tuts + mundo". Impresionante: por fin hemos terminado con nuestro primer módulo hola mundo..Despacho del controlador
Aquí hemos extendido la clase.
Mage_Core_Controller_Front_Action
que contiene todos los métodos que se utilizan en el enrutamiento de url. El nombre de la clase Magento refleja la ubicación del archivo de clase. Entonces la claseMage_Core_Controller_Front_Action
reside en el lugar Mago> Núcleo> Controlador> Frente> Action.phpVer el nombre de la clase de nuestro controlador que es
Chiragdodia_Mymodule_IndexController
. El controlador Magento debe ser nombrado de tal manera que refleje(
etiqueta) _ (nombre de usuario de la acción) (controlador de palabra clave).
Chiragdodia_Mymodule
(Hemos definido esta etiqueta en config.xml
) Nombre de usuario
= ÍndiceControlador
palabra clave Basado en este patrón, el nombre de nuestro controlador es Chiragdodia_Mymodule_IndexController
Ahora vea el patrón de URL que es el siguiente patrón de rutayoursite.com/index.php/frontendname/actionControllername/actionmethod
Basado en este patrón de URL, la URL de nuestro módulo es yoursite.com/index.php/mymodule/index/index
. También puedes acceder a ella usando yoursite.com/index.php/mymodule
porque siempre que no hayas especificado un actionController
o método de acción
nombre, Magento carga el controlador de índice y la acción de índice de forma predeterminada.
Ahora vamos a crear una acción más: testAction
.
Podemos acceder a la testAction utilizando la URL.
yoursite.com/index.php/mymodule/index/test
.Como se explicó anteriormente aquí
Así es como funciona el controlador en Magento..
Al principio, puede ser difícil entender todo a la vez, por lo que he incluido todo el código fuente de este módulo para que pueda revisarlo e implementar su propio trabajo mientras lo usa como guía..
En la siguiente parte, vamos a completar algunos diseños en nuestro módulo creando archivos de diseño y bloque. Entenderemos cómo funcionan los archivos de diseño en Magento y qué roles juegan en el contexto de Magento..
Hasta entonces, crea tu propio módulo y hazme saber cualquier cosa que te cause problemas..
Si aún no está seguro de cómo proceder después de leer este tutorial, intente ponerse en contacto con uno de los desarrolladores de Magento en Envato Studio. Te pueden ayudar con todo tipo de problemas de Magento, grandes y pequeños. Aquí están algunos ejemplos:
Obtenga una configuración del sitio web de Magento o solicite una personalización avanzada como:
Este proveedor hará cualquiera de los siguientes:
Obtenga su tema Magento personalizado a un precio razonable dentro de un plazo de un día.
Este proveedor ofrece una variedad de servicios de Magento, que incluyen:
Si estas soluciones no son adecuadas para usted, pruebe una de las docenas de otras disponibles en Envato Studio..