Domanda

Magento dispone di tre piscine di codice:

  1. comunità
  2. nucleo
  3. locale

Nucleo: Contiene tutti i moduli Magento predefinite

Comunità e locale:. Usiamo queste piscine di codice per il nostro sviluppo modulo personalizzato

Ora ho dubbi su questo:

  • Perché l'uso Magento due piscine di codice per la nostra personalizzazione?
  • perché non Magento utilizza un pool unico codice per la personalizzazione?

Qualcuno potrebbe spiegare su questo?

È stato utile?

Soluzione

app / code / core -. Contiene moduli che sono distribuiti con la base Magento e compongono la funzionalità di base

app / code / comunità - Contiene i moduli che vengono sviluppate da terze parti

app / code / local -. Contiene i moduli personalizzati sviluppati, tra cui le sostituzioni codice Mage

Perché l'uso Magento piscina a due code per la nostra personalizzazione?

Magento in realtà utilizza tre piscine di codice. Caricherà locale primo, comunità secondo, e nucleo terzi. Esso utilizza tre a fini organizzativi e per aiutare a risolvere i problemi quando due + estensioni 3rd party stanno cercando di riscrivere la stessa cosa. In un esempio stavi avere due estensioni in app / code / comunità che cercano di riscrivere lo stesso modello, si può semplicemente fare un estensione in app / code / local e unire la logica due estensioni insieme.

Perché non Magento utilizzare la piscina unico codice per la personalizzazione?

E 'stato fatto in questo modo per cercare di avere un po' di organizzazione del codice. Inoltre, quando si dispone di 3 ° i conflitti di partito, il locale è grande per aiutare a risolvere questi problemi. Il locale è anche bello avere estensioni che solo quel sito avrà mai.

Altri suggerimenti

entrare descrizione dell'immagine qui

Questa piscina core : codice appartiene al team di sviluppo di Magento. Quindi non dovrebbe apportare modifiche in questa piscina codice.

community : Questo appartiene alla comunità di sviluppatori di Magento (compresi tutti gli sviluppatori che sviluppano estensioni di terze parti). Se si sta creando tutte le estensioni di terze parti, in modo da poter utilizzare questa piscina codice per questo.

local : Questo può essere utilizzato se si vuole fare eventuali modifiche (aggiungere nuove funzionalità / estensione sovrascrivendo / funzionalità principali modifiche etc.) specificamente per il tuo negozio Magento e non si desidera condividere con la comunità. Allo stesso tempo, è possibile ignorare la funzionalità nelle piscine core e un codice comunitario

Descrivi Magento Codepools

Nucleo piscina

Prima di tutto, questa cartella memorizza tutti il ??codice che rende Magento così potente, flessibile e bella. La regola principale di sviluppo Magento è che non si dovrebbe mai apportare modifiche in esso. In altre parole, questa cartella appartiene ai soli sviluppatori principali di Magento e se avete intenzione di modificare qualcosa in questa piscina, il loro spirito maligno potrebbe punirà anche attraverso il display.

Comunità piscina

Questa cartella appartiene interamente alla comunità di sviluppatori. Questo è il posto giusto per centinaia di estensioni 3rd party, sia gratuiti ea pagamento, che possono essere trovati in MagentoConnect o disponibili sul negozio di sviluppo di estensioni. Quindi, fondamentalmente, se è stato installato qualsiasi estensione, deve essere in app / code / comunità / solo.

piscina locale

Se avete il vostro negozio Magento-based e vuole fare tutto da soli o siete uno sviluppatore Magento e hanno uno scopo di cambiare la logica in qualche modo, piscina locale è il luogo dove tutto dovrebbe essere fatto. Se si desidera ignorare le estensioni Magento, blocchi o metodi, copiare le cartelle necessarie dalla piscina Core e fare quello che sono inclini a fare. Applicare la stessa regola per le estensioni personalizzate che vengono creati specificamente per il sito web -. Tutto il codice deve essere in piscina locale

Aggiunta predette nel suo semplice per realizzare le priorità e avendo modularità. È possibile controllare lo stesso in Mage.php.

piscine codice Caricamento 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';

Quindi, prima locale chiamato poi comunità poi core e di Magento non troverà alcun file di base allora sarà cercare cartella lib che contengono i file Zend Framework-core

La migliore spiegazione che ho è che se si ha intenzione di distribuire le estensioni ad un pubblico più ampio, ad esempio tramite Magento Connect è possibile inserirlo nella comunità.

Ciò consentirebbe un altro sviluppatore per ignorare il comportamento inserendo una classe nella cartella locale.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top