Perché Magento ha 3 pool di codici?


26

Magento ha tre pool di codici:

  1. Comunità
  2. nucleo
  3. Locale

Core: contiene tutti i moduli predefiniti di Magento

Comunità e locali: utilizziamo questi pool di codici per lo sviluppo dei nostri moduli personalizzati.

Ora ho dubbi su questo:

  • perché Magento utilizza due pool di codici per la nostra personalizzazione?
  • perché Magento non utilizza un singolo pool di codici per la personalizzazione?

Qualcuno potrebbe spiegare questo?

Risposte:


34

app / code / core : contiene moduli distribuiti con il Magento di base e costituisce la funzionalità principale.

app / codice / community : contiene moduli sviluppati da terze parti

app / code / local : contiene i moduli personalizzati sviluppati, comprese le sostituzioni del codice Mage.

Perché Magento utilizza due pool di codici per la nostra personalizzazione?

Magento attualmente utilizza tre pool di codici. Caricherà prima localmente , seconda community e terza core . Ne utilizza tre per scopi organizzativi e per aiutare a risolvere i problemi quando due + estensioni di terze parti stanno provando a riscrivere la stessa cosa. In un esempio, se hai due estensioni in app / code / community nel tentativo di riscrivere lo stesso modello, puoi semplicemente creare un'estensione in app / code / local e unire insieme la logica delle due estensioni.

Perché Magento non utilizza un pool di codici singolo per la personalizzazione?

È stato fatto in questo modo per provare ad avere una certa organizzazione del codice. Inoltre, quando si verificano conflitti di terze parti, il locale è eccezionale per aiutare a risolvere tali problemi. Il locale è anche fantastico avere estensioni che solo quel sito potrà mai avere.


1
Bella risposta sulla domanda del pool di codice singolo. Dati tutti i conflitti che incontrerai dopo aver installato diversi moduli di terze parti, è molto necessario disporre di quel terzo localpool di codici per massaggiare tutti i blocchi.
Fiasco Labs il

11

inserisci qui la descrizione dell'immagine

core :Questo pool di codici appartiene al team di sviluppo principale di Magento. Quindi NON dovresti apportare modifiche in questo pool di codici.

community :Questo appartiene agli sviluppatori della comunità Magento (incluso qualsiasi sviluppatore che sviluppa estensioni di terze parti). Se stai creando estensioni di terze parti, puoi utilizzare questo pool di codici per questo.

local :Questo può essere utilizzato se si desidera apportare modifiche (aggiungere nuove funzionalità / sostituzioni di estensione / modifiche alle funzionalità di base ecc.) In modo specifico per il proprio negozio Magento e non si desidera condividerlo con la comunità. Allo stesso tempo è possibile sovrascrivere la funzionalità nei pool di codici core e di comunità


5

Descrivi i codici di Magento

Pool principale

Prima di tutto, questa cartella contiene tutto il codice che rende Magento così potente, flessibile e piacevole. La regola principale dello sviluppo di Magento è che non dovresti mai apportarvi modifiche. In altre parole, questa cartella appartiene solo agli sviluppatori core di Magento e se hai intenzione di modificare qualcosa in questo pool, il loro spirito malvagio potrebbe punirti anche attraverso il display.

Piscina comunitaria

Questa cartella appartiene interamente agli sviluppatori della comunità. Questo è il posto giusto per centinaia di estensioni di terze parti, sia gratuite che a pagamento, che puoi trovare su MagentoConnect o disponibili nello store di sviluppo delle estensioni. Quindi, in pratica, se hai installato qualche estensione, deve essere solo in app / code / community /.

Piscina locale

Se hai il tuo negozio basato su Magento e vuoi realizzare tutto da solo o sei uno sviluppatore Magento e hai uno scopo di cambiare la logica in qualche modo, il pool locale è il luogo in cui tutto dovrebbe essere fatto. Se si desidera sovrascrivere estensioni, blocchi o metodi Magento, copiare le cartelle necessarie dal pool principale e fare ciò che si è propensi a fare. Applicare la stessa regola per le estensioni personalizzate create appositamente per il sito Web: tutto il codice deve essere nel pool locale.


4

Aggiungendo tutto quanto sopra per semplificare le priorità e la modularità. Puoi controllare lo stesso in Mage.php.

Caricamento di pool di codici 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 Local ha chiamato poi community, quindi core e magento non troveranno alcun file core quindi cercherà nella cartella lib che contiene i file Zend-Framework Core


1

La migliore spiegazione che ho è che se si intende distribuire le estensioni a un pubblico più ampio, ad esempio tramite Magento Connect, è possibile inserirle nella comunità.

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.