¿Por qué Magento tiene 3 grupos de códigos?

26

Magento tiene tres grupos de códigos:

  1. comunidad
  2. núcleo
  3. local

Core: contiene todos los módulos predeterminados de Magento

Comunidad y local: Utilizamos estos grupos de códigos para el desarrollo de nuestro módulo personalizado.

Ahora tengo dudas sobre esto:

  • ¿Por qué Magento utiliza dos grupos de códigos para nuestra personalización?
  • ¿Por qué Magento no utiliza un único grupo de códigos para la personalización?

¿Alguien podría explicar sobre esto?

MeenakshiSundaram R
fuente

Respuestas:

34

app / code / core : contiene módulos que se distribuyen con el Magento base y conforman la funcionalidad principal.

app / code / community : contiene módulos desarrollados por terceros

app / code / local : contiene los módulos personalizados que desarrolló, incluidas las anulaciones de código de Mage.

¿Por qué Magento usa dos grupos de códigos para nuestra personalización?

Magento en realidad usa tres grupos de códigos. Se cargará local primero, comunidad segundo y núcleo tercero. Utiliza tres para fines de organización y para ayudar a resolver problemas cuando dos + extensiones de terceros intentan reescribir lo mismo. En un ejemplo en el que tiene dos extensiones en la aplicación / código / comunidad que intenta reescribir el mismo modelo, simplemente puede hacer una extensión en la aplicación / código / local y fusionar las dos extensiones lógicas.

¿Por qué Magento no usa un grupo de código único para la personalización?

Se hizo de esta manera para tratar de tener alguna organización de código. Además, cuando tiene conflictos con terceros, el local es excelente para ayudar a resolver esos problemas. El local también es excelente para tener extensiones que solo ese sitio tendrá.

kab8609
fuente
1
Buena respuesta en la pregunta de grupo de código único. Dados todos los conflictos con los que se encontrará después de instalar varios módulos de terceros, es muy necesario tener ese tercer localgrupo de códigos para eliminar todos los bloqueos.
Fiasco Labs
11

ingrese la descripción de la imagen aquí

core :Este grupo de códigos pertenece al equipo de desarrollo central de Magento. Por lo tanto, NO debe realizar ninguna modificación en este grupo de códigos.

community :Esto pertenece a los desarrolladores de la comunidad Magento (incluido cualquier desarrollador que desarrolle extensiones de terceros). Si está creando extensiones de terceros, puede usar este grupo de códigos para eso.

local :Esto se puede usar si desea realizar alguna modificación (agregar nueva funcionalidad / anulación de extensión / modificaciones de funcionalidad principal, etc.) específicamente para su tienda Magento y no desea compartirla con la comunidad. Al mismo tiempo, puede anular la funcionalidad en los grupos de códigos principales y comunitarios

Sukeshini
fuente
5

Describir las agrupaciones de códigos de Magento

Grupo central

En primer lugar, esta carpeta almacena todo el código que hace que Magento sea tan poderoso, flexible y encantador. La regla principal del desarrollo de Magento es que nunca debe realizar ningún cambio en él. En otras palabras, esta carpeta pertenece solo a los desarrolladores principales de Magento y si va a editar algo en este grupo, su espíritu maligno podría castigarlo incluso a través de la pantalla.

Piscina comunitaria

Esta carpeta pertenece completamente a los desarrolladores de la comunidad. Este es el lugar adecuado para cientos de extensiones de terceros, tanto gratuitas como pagas, que se pueden encontrar en MagentoConnect o disponibles en la tienda de desarrollo de extensiones. Básicamente, si ha instalado alguna extensión, debe estar en app / code / community / only.

Piscina local

Si tiene su propia tienda basada en Magento y desea hacer todo por su cuenta o si es un desarrollador de Magento y tiene el propósito de cambiar la lógica de alguna manera, el grupo local es el lugar donde se debe hacer todo. Si desea anular las extensiones, bloques o métodos de Magento, copie las carpetas necesarias del grupo de Core y haga lo que esté dispuesto a hacer. Aplique la misma regla para extensiones personalizadas que se crean específicamente para el sitio web: todo el código debe estar en el grupo local.

Keyul Shah
fuente
4

Agregando todo lo anterior en simple es para hacer prioridades y tener modularidad. Puede verificar lo mismo en Mage.php.

Cargando grupos de códigos con

 $paths[] = BP . DS . 'app' . DS . 'code' . DS . 'local';
 $paths[] = BP . DS . 'app' . DS . 'code' . DS . 'community';
 $paths[] = BP . DS . 'app' . DS . 'code' . DS . 'core';
 $paths[] = BP . DS . 'lib';

SO primero Local llamado luego comunidad luego core y magento no encontrarán ningún archivo core, luego buscará en la carpeta lib que contiene los archivos Core de Zend-Framework

Bharat
fuente
1

La mejor explicación que tengo es que si pretendes distribuir tus extensiones a un público más amplio, por ejemplo a través de Magento Connect, puedes colocarlo en la comunidad.

Esto permitiría a otro desarrollador anular el comportamiento al colocar una clase en la carpeta local.

Kristof en Fooman
fuente