Digamos que quiero desarrollar una extensión de Magento que interactúe, por ejemplo, con un paquete de gráficos de código abierto o una galería de imágenes o lo que NO sea parte de la extensión en sí. Cuando se descarga (aparte de la extensión), la lib de terceros viene en su propio .zip único con todos sus .php, .js, .html y .css juntos.
¿Coloco en el propietario del sitio pobre que desea instalar mi extensión junto con la lib de terceros, la carga de separar el .zip original de terceros y hacer que pongan .js en / js, .php en / lib,. css en / skin, etc.
¿O hay un "vertedero" generalmente aceptado para cualquier .zips de terceros donde uno puede descomprimir convenientemente la descarga TAL CUAL y terminar con ella?
Por lo tanto, desea crear una extensión y está utilizando un recurso / paquete externo para construirlo. En mi opinión, cualquier paquete que haya utilizado en su extensión, su extensión debe seguir las mejores prácticas de Magento. Eso significa que debe separar todas las imágenes js, css, del recurso externo y colocarlas en
base\default
los directorios del paquete de temas.es decir, no existe una ubicación única para colocar recursos de paquetes de terceros. En última instancia, cuando entregas una extensión genial, todas las js, css e imágenes relacionadas con tu extensión deben mantenerse en un lugar donde normalmente se va a buscar otro desarrollador y que en casi todos los casos es el
base/default
paquete de temas.En breve
Todas tus extensiones js deberían estar bajo
De esta forma, otro desarrollador puede encontrar fácilmente js, css e imágenes (de sus recursos externos también) de su extensión muy fácilmente. Como está utilizando un subdirectorio adicional para indicar los archivos de recursos externos dentro de su directorio de nombre de extensión, dará a los demás una mejor pista de que su extensión depende de algunos paquetes de terceros.
Por lo tanto, le recomiendo que separe los paquetes externos y los haga parte de su extensión para que otro desarrollador pueda encontrar fácilmente sus dependencias. :-)
EDITAR - 1
No debe hacer su carga de extensión para el propietario de su sitio. Puede evitar esta dificultad alineando adecuadamente su extensión. Eso significa que si guarda todos los archivos relacionados en las ubicaciones de directorio especificadas, entonces todo lo que debe hacer un propietario del sitio es tomar su extensión y luego Fusionar su extensión desde el directorio raíz de la aplicación. es decir, alinee su extensión correctamente. Debe tener un aspecto como este.
EDITAR - 2
Si hay algunos paquetes, que deberían compartirse en todas las aplicaciones de Magento (como una biblioteca javascript, o un paquete php, etc.), puede colocarlos en el
\lib
directorio.Es cierto que puede existir un archivo duplicado si dos extensiones se basan en los mismos paquetes de recursos. También pueden usar versiones diferentes del mismo paquete de recursos. Pero, básicamente, su extensión debe usar solo el recurso de su extensión (y puede confiar en los recursos predeterminados de Magento) y no debe depender de los recursos de otra extensión, a menos que su extensión sea una "versión extendida" de una extensión de terceros.
fuente
js, css, images
en elbase\default
paquete". También vea mi código de ediciónMagento tiene su propio administrador de paquetes llamado Magento Connect. Debe consultar esta guía de la documentación oficial para comprender completamente cómo debe verse el paquete. Puede empaquetar su módulo desde una instalación de Magento una vez que comprenda la estructura.
fuente
Básicamente Magento utiliza su propia estructura de retención
.php
,.phtml
,js
,css
,images
archivos.Para el desarrollador de extensiones de magento es muy importante que sigas el camino de magento. Mira este enlace .
Entonces,
.php
archivos deben ir debajo de laapp/code/community
carpetajs
archivos pueden ir a lajs
carpeta o en laskin/frontend or adminhtml/your_theme_pack/your_theme/js
carpetacss
archivos pueden ir a laskin/frontend or adminhtml/your_theme_pack/your_theme/css
carpetaimages
archivos pueden ir a laskin/frontend or adminhtml/your_theme_pack/your_theme/images
carpetafiles should go to
carpeta 'html app / design / frontend o adminhtml / template`PS frontend significa si su extensión es para front store y adminthml significa si su extensión es para el área de administración.
Hay una forma específica de mantener estos archivos en magento, por lo que debe seguirlos.
También verificaría si sus funciones deseadas / copia ya están disponibles en magento / zend framework. Por ejemplo, crear pdf, enviar correos electrónicos, leer xml, etc., ya están construidos en magento.
Espero que esto ayude.
Actualización 1
Si desea mantener sus archivos en algún lugar, puede hacerlo en cualquier lugar. Incluso puede crear una nueva carpeta dentro de la raíz de magento. Pero esta no es la mejor práctica para magento, que cargará su servidor cuando ejecute esos archivos. Desea verificar esto https://magentotherightway.com/
fuente
local
agrupación de códigos.