Logo Domenico Calipari Blog
Logo Domenico Calipari Blog

mercoledì, novembre 30, 2011

Magento: organizzazione del codice in moduli


Magento organizza il codice in Moduli individuali. 

In una tipica applicazione PHP che usi il pattern MVC (Model-View-Controller), tutti i Controllers risiedono in una cartella, i Models in un'altra etc. 

In Magento, i files sono raggruppati insieme in base alle loro funzionalità. Queste funzionalità vengono identificate tramite i cosidetti Modules.

Magento's Code

Per esempio troveremo i Controllers, Models, Helpers, Blocks etc. collegabili alla funzionlità di checkout all'interno di questo percorso: 


app/code/core/Mage/Checkout

Per esempio troveremo i Controllers, Models, Helpers, Blocks etc. collegabili alla funzionlità di Google Checkout all'interno di questo percorso: 


app/code/core/Mage/GoogleCheckout

Codice Customizzato

Quando vogliamo personalizzare o estendere Magento, piuttosto che sovrascrivere direttamente files che risiedono nel core di Magento, o piuttosto che inserire i nostri nuovi Controllers, Models, Helpers, Blocks etc. all'interno del codice nativo di Magento, è preferibile creare i Modules customizzati e salvarli in questo percorso:


app/code/local/Package/Modulename

Package ( spesso definito come un Namespace ) è un nome univoco che identifica la nostra azienda o persona. L'intento è che ogni membro della community di Magento usi il proprio nome quando crea un modulo al fine di evitare collisioni con altro codice customizzato.

Quando si crea un nuovo Module, è necessario "informare" Magento. Questo si fa aggiungendo un file XML all'interno della cartella:


app/etc/modules

Ci sono due tipi di files in questa cartella, il primo abilita Moduli individuali, e si utilizza questa forma per il nome:

Packagename_Modulename.xml

Il secondo è un file che abilita Moduli multipli da un Package/Namespace e  e si utilizza questa forma per il nome:

Packagename_All.xml


0 commenti:

Posta un commento