Il pattern MVC
Prestashop basa la sua struttura architetturale sul modello MVC (Model View Controller); i moduli utilizzano la stessa struttura. Questa soluzione progettuale, permette di separare la logica di presentazione dalla logica applicativa. Tale pattern, molto diffuso negli ultimi anni, rappresenta uno degli schemi progettuali più affermati proprio per la netta separazione tra le viste dell’interfaccia e le logiche usate per la modifica dei dati.
Nello specifico, l'architettura MVC si basa sostanzialmente su tre componenti:
- Model: gestisce la logica dell'applicazione che comprende l'elaborazione e l'accesso ai dati (database, file, etc.). Contiene per esempio i metodi per recuperare, inserire, eliminare e aggiornare le informazioni delle tabelle del database.
- View: si occupa della visualizzazione dei dati dell’applicazione all'utente. Infatti il suo compito è quello di generare l'output.
- Controller: gestisce le richieste da parte dell'utente e le azioni che devono essere intraprese sul Model.
File e cartelle di un plugin per Prestashop
Ogni modulo è composto da una serie di file e cartelle e deve essere posizionato nella directory modules
presente nella radice di Prestashop (modules/nome_modulo
). I file necessari per un modulo di base sono, nell'ordine, il file principale, i files ico
e il file di configurazione (config.xml
). Quest'ultimo è creato in fase di installazione dallo stesso e-commerce engine.
Il file principale, o file di bootstrap, si occuperà del caricamento e della gestione del modulo. Il nome di questo file deve essere uguale al nome del modulo e, come per il plugin, non dovrà presentare spazi o caratteri speciali e dovrà essere espresso completamente in minuscolo. I files ico
permetteranno invece di associare un'icona al modulo nel backoffice.
La cartella denominata Controllers
contiene a sua volta 2 sotto-cartelle chiamate Front
e Admin
.
Front
: presenta i controllers necessari per la componente frontend del modulo.Admin
: raccoglie i controllers necessari per la sezione di amministrazione.
La cartella Models
, contiene la classe associata con il controller di amministrazione e, se necessario, tutte le altre classi. Utilizzando la struttura MVC per il modulo, e posta la classe nella cartella Models
, è necessario includere tale classe nella classe principale del plugin.
La cartella Views
, contiene i file template e contiene una sottocartella denominata Templates
. A sua volta, questa sottocartella, in base alla sezione che utilizzerà i file template, può contenere 3 sottocartelle: admin
, front
e hook
.
Solitamente un modulo di Prestashop non contiene solo file .php
, ma anche file .js
, .css
ed immagini. Questi file, utilizzati sia nel frontend che nel backend del sito, sono memorizzati nelle relative cartelle.
Il ruolo dei file e delle cartelle di un plugin
Di seguito l'elenco dei file e delle cartelle che compongono un modulo di Prestashop.
File / Cartella | Dettagli |
---|---|
nome-modulo.php | File principale. |
/img | Cartella per i file immagine. |
/controllers | Contiene i file controller. Può contenere 2 sottocartelle front e admin . |
/css | Cartella per i file CSS. |
/js | Cartella per i file JavaScript. |
/view |
Cartella per i file relativi al template del modulo (.tpl ):
|
/override | Permette di sovrascrivere funzionalità native di Prestashop. Metodologia consigliata in caso di futuri aggiornamenti del framework. |
/upgrade | Cartella per gli aggiornamenti del modulo. |
/themes/nome_del_tema/modules | Permette di sovrascrivere funzionalità di un modulo esistente senza intaccare i file originali. |
/translations | Contiene una sottocartella per ogni lingua disponibile ("it", "en", etc.), contenenti a loro volta, le traduzioni del modulo. |
config.xml | File di configurazione creato automaticamente da Prestashop durante l'installazione del modulo. |
logo.png | Icona del modulo visualizzata nel backoffice. |
Una volta analizzata nel dettaglio la struttura dei moduli di Prestashop, si potrà passare alla procedura necessaria per la creazione di un primo plugin.