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


martedì, novembre 29, 2011

Magento: Architettura MVC Configuration-Based

Architettura MVC Magento


L'architettura di Magento utilizza quello che è noto come Pattern MVC ( Model-View-Controller o in italiano Modello-Vista-Controllore). Esistono diverse implementazioni del pattern MVC. Quella più utilizzata è la cosiddetta MVC convention-based. Magento è invece un sistema definito MVC configuration-based. 
In un sistema MVC convention-based se per esempio si vuole aggiungere un nuovo Controller o anche un nuovo Model, basta creare il file (o la classe per meglio dire) interessato e il sistema dovrebbe riconoscerlo automaticamente. In un sistema configuration-based come Magento, oltre ad aggiungere il nuovo file/classe al codice predefinito, spesso si deve eplicitare al sistema che si è creata una nuova classe o un nuovo gruppo di classi. In Magento ogni Module ha associato un file chiamato config.xml. Questo file contiene tutte le configurazioni rilevanti per il Module di Magento. A tempo di esecuzione tutti questi files vengono caricati in un gigante albero di configurazione. Per esempio, se si vogliono usare dei Models in un Modulo personalizzato bisogna aggiungere del codice al config.xml dicendo a Magento esplicitamente che si vuole utilizzare quei Models:


<models>
     <packagename>
          <class>Packagename_Modulename_Model</class>
    <packagename>
</models>

Lo stesso vale per gli Helpers, Blocks, Routes per i Controllers, Event Handlers etc... Quasi ogni volta che si vuole sfruttare la potenza del sistema di Magento, è necessario fare qualche modifica o aggiunta al file di configurazione.

Link e Fonte: Magento Commerce Knowledge Base


domenica, novembre 27, 2011

Cos'è Magento?

Logo Magento
In questo blog ho intenzione di dedicare ampio spazio alla pubblicazione di atricoli concernenti una piattaforma per il commercio elettronico che si chiama Magento. Personalmente utilizzo questa piattaforma da qualche anno e ne ho seguito la rapida ascesa nel web, e ogni giorno mi stupisco sempre più della sua potenza e versatilità.

Cosa è Magento?
Magento è la più potente piattaforma di eCommerce online dell'universo e ha rivoluzionato quello che oggi chiamiamo commercio elettronico.

Probabilmente è invece più difficile realizzare che Magento sia un moderno Framework PHP orientato agli oggetti che viene utilizzato per sviluppare applicazioni web dinamiche.

Ma non disperate, presto lo conoscerete anche voi spero anche grazie a questo blog. Chiudo questo breve post, con una citazione che viene direttamente dai Forum di Magento:

"Magento è come una donna, ti infatui.. la vuoi a tutti i costi.. poi inizia a stressarti.. e quando vorresti mollarla ti accorgi che è troppo tardi".

Link: www.magentocommerce.com