Passa ai contenuti principali

Magento Overview


Magento è un sistema sviluppato seguendo il pattern MVC e scritto in PHP. Si articola in gruppi di moduli.
Ogni modulo contiene aree separate di funzionalità e cerca di ridurre al minimo le dipendenze con gli altri moduli.


Magento si basa sulla configurazione tramite files per le impostazioni.

Codice

Un gruppo di funzionalità è definito modulo. I moduli sono il vero cuore di Magento: ogni azione sul sito nel frontend o backend passa attraverso un modulo. 
I moduli possono contenitori uno o più dei seguenti oggetti:impostazioni
  • database schema
  • dati
  • visualizzazione
  • helpers
  • modelli 
  • controller
I moduli sono raggruppadi in "code pools", che consentono una facile e sicura
personalizzazione ed estensione delle funzionalità di base. I code pools assicurano che le funzionalità native possono essere aggiornate con nuove release di Magento e il sistema rimane protetto dalle modifiche che il merchant desidera suo proprio e-commerce.

Code Pools

Magento contiene 3 code pools:
  • il "core code pool" contiene la base dell'applicazione, il cuore di Magento. Solo gli sviluppatori di Magento  dovrebbero modificare i files presenti in questo pool
  • il "community code pool" contiene i files che estendono il "core code pool" e possono applicarsi a diverse istanze di Magento. In pratica sono le estensioni
  • il "local code pool" contiene i files che estendono il "core code pool" e soo utilizzati per personalizzare la singola istanza di Magento e non disponibili alla community

Struttura di un modulo

Il modulo si compone di gruppi di file suddivisi in base alle funzionalità all'interno del modulo:
  • Blocchi: responsabili di preparare la visualizzazione dei dati nel template
  • Modelli: implementano la business logic
  • Risorse: permettono un livello di accesso ai dati per l'estensione
  • Controllori: contengono i metodi chiamati azioni che processano le richieste inviate al modulo
  • Configurazione: file xml per la configurazione del modulo
  • Helpers: classi ausiliarie
  • SQL: file sql per creare o modificare tabelle
  • DATA sql: i dati da inserire 

Design

Magento si basa sui temi per controllare il look and feel del negozio.
I temi sono raggruppati in pacchetti.
Ogni negozio in Magento può usare il proprio tema  o condividere parti di esso o tutto con altri negozi.
Possono coesistere molteplici temi in una installazione ma solo uno di essi può essere utilizzato per ogni negozio.
In fase di installazione Magento presenta il "base package" come tema.

Temi

Gli skin files che determinano l'aspetto grafico sono inseriti in due directory:
  • app/design: i file che controllano come le pagine sono visualizzate
  • skin: contiene i css, javascript e immagini
I file dei temi sono organizzati in:
  • layout: contiene i file xml che definiscono i blocchi per le varie pagine
  • template: i file phtml che creano la logica per la visualizzaione
  • locale: file csv suddivisi in lingue che contengono le traduzioni
Tutte le parti del tema base possono essere sovrascritte. Le parti non sovrascritte utilizzano il tema base.

  1. quando il sistema richiede un file lo cerca nel temarecupera (app/design/frontend/mytheme/my_theme)
  2. se il file non è trovato si passa al default del tema (app/design/frontend/mytheme/default)
  3. se non è trovato anche del default del mio tema è cercato nel default del base package (app/design/frontend/default/default)
  4. se  il file non è trovato neanche nel base allora il sistema emette errore

Configurazione

I moduli sono definiti in un file xml e tramite esso possono essere abilitati o disabilitati.
Il file si trova sotto app/etc/modules
Ogni modulo può specificare le proprie impostazioni sono la directory etc/ del modulo stesso.

Post popolari in questo blog

install language on osTicket

this simple guide aims you to install and configure your language on osTicket i written this guide based on forum post http://osticket.com/forum/discussion/76252/installing-language-pack

Trasferimento server to server (LINUX) della casella email

Oggi ho scoperto un tool veramente molto utile per il trasferimento server to servevr delle caselle email. Ed è acnhe veloce.
Si chiama imapsync [rif: https://imapsync.lamiral.info/ ]In pratica il tool da linea di comando si connette via imap al server email precedente e trasporta tutto al server di destinazioneLo uso quando faccio migrazioni di vps.Come funziona imapsync per sincronizzare e emailInternet è una risorsa. Da questo blog ho preso tutte le indicazioni https://www.jverdeyen.be/ubuntu/imapsync-on-ubuntu/Uso una distribuzione ubuntu 14.04. Non esiste un pacchetto precompilato da installare. imapsync si basa su perl. Ve lo ricordate? Mica è andato in disuso.Primo: si installano le dipendenze di imapsync per la migrazione mail server to serversudo apt-get install makepasswd rcs perl-doc libio-tee-perl git libmail-imapclient-perl libdigest-md5-file-perl libterm-readkey-perl libfile-copy-recursive-perl build-essential make automake libunicode-string-perl Secondo: si scarica i…

Creare un ambiente di sviluppo PHP SYMFONY MYSQL DOCKER

Preferisco Docker a Vagrant, più leggero. Ognuno naturalmente ha le sue preferenze.
Docker lo trovo più facile e veloce da configurare.
Non conosci Docker, vai sul sito e scoprirai un tool fantastico per "virtualizzare" le macchine, anche se non è il termine corretto.
Docker crea un contenitore all'interno del tu S.O. senza però virtualizzare l'infrastruttura hardware.
A me piace sviluppare con Symfony: W Symfony2!

[update: ho trovato questa serie di post nuovi per lo sviluppo con symfony su docker
https://blog.vandenbrand.org/2016/02/03/developing-symfony-applications-with-docker-series-part-i-getting-started/
]