Condividi!

Magento dispone di tre codepools, cioè di tre cartelle nelle quali è contenuto tutto il codice che fa capo ai singoli moduli in esso implementati.

NOTA: Da più parti si legge, in modo riduttivo, che i codepool contengono “tutto il codice che permette a magento di funzionare”. Tutto questo  è errato, in quanto, ad esempio, le librerie di base (tra cui ZEND, VARIEN, PEAR solo per citarne alcune…) sulle quali davvero si fonda Magento, si trovano in tutt’altra posizione (root/lib).

I tre codepools sono localizzati nel cartella app/code di Magento e sono:

  • core: qui è contenuto tutto il codice relativo ai moduli di default, cioè preinstallati, all’interno della piattaforma.
    Da notare che, in mezzo ai vari moduli Catalog, Checkout, Captcha, Payment, Sales, Shipping, utilizzati continuamente in modo “diretto” dall’utente, sono presenti anche moduli “di sistema” come Install, Dataflow, Eav e soprattutto il modulo Core, che è la base sulla quale tutti gli altri moduli riescono a lavorare.
    Qui, dunque, c’è davvero tutto il cuore della piattaforma Magento.
  • community: contiene tutto il codice relativo ai moduli esterni creati dalla community Magento. Supponendo infatti che si voglia installare un modulo esterno, il codice di questo modulo sarà contenuto all’interno di questa cartella.
  • local: qualora si voglia sviluppare un modulo personalizzato senza magari la necessità di condividerlo (gratis o a pagamento) con la community, o si voglia sovrascrivere un modulo o una classe specifica di un modulo già installato, allora è qui che va inserito tutto il codice.
    Considerando che il codice all’interno del codepool Core non va MAI (ripeto MAI*) toccato, e che all’interno della cartella community è stanziato il codice dei moduli esterni, è facile comprendere come gli sviluppatori magento debbano pensare al codepool local come l’unica zona nella quale scrivere e sviluppare il proprio codice ed i propri moduli.

* Il codice scritto nel codepool core è soggetto a variazioni ed aggiornamenti da parte degli sviluppatori della piattaforma. Dunque, qualora toccaste il codice in esso contenuto, oltre al rischio di creare danni all’intera piattaforma, correreste l’ulteriore rischio di vanificare i vostri sforzi al primo aggiornamento ad una nuova versione di Magento, sovrascrivendo tutto ciò che avevate precedentemente creato.
Se avete necessità di sovrascrivere o integrare parte del codice, potete farlo utilizzando le apposite metodiche messe a disposizione da Magento, cioè il “rewrite” e la struttura “event/observer”.