Il lavoro per Massaboutique è cominciato in un momento in cui era in corso l’aggiornamento del sito www.massaboutique.com. Il primo step è stato quello di aiutare lo sviluppatore a terminare il lavoro in corso inserendo delle nuove funzionalità e migliorando l’interfaccia utente rendendola più user friendly. Il sistema era sviluppato in PHP4 in maniera procedurale, erano state introdotte delle classi che fungevano come “gestori” per le varie entità del sito ma non una vera e propria architettura e non una vera programmazione ad oggetti. L’inclusione di file come alternativa al richiamo di metodi di classe rendeva difficile la modifica non essendoci information hiding, incapsulamento, nè riciclo del codice.
Ad aggiornamento ultimato il mio compito è stato quello di ricreare tutto il sito partendo da zero ed utilizzando un architettura e delle tecniche che permettessero una più facile manutenzione ed evoluzione. In precedenza codice di livello logico, query al database e codice HTML erano totalmente mischiati all’interno del codice. Inoltre anche gli aspetti di CSS e JavaScript non erano gestiti bene in quanto vi era un unico file CSS che conteneva gli stili di tutto il sito ed un file che conteneva tutti gli script JS con uno switch che ne selezionava la sezione corretta.
L’architettura utilizzata per il rifacimento è stata quella a 3 livelli. Partendo dalla struttura del database ho iniziato creando tramite uno script PHP le classi che rappresentavano le entità e le relazioni del sistema ovvero le tabelle del database . Successivamente, sempre tramite uno script, ho creato i Data Access Object per la gestione dell’accesso ai dati ed il popolamento delle classi base. Infine ho creato il livello di Business partendo dall’urlManager, ovvero da quel componente che funge da dispatcher e si occupa del riconoscimento degli url, della loro traduzione nelle 7 lingue, ecc.. Successivamente sono passato a creare gli altri componenti per il controllo dei prodotti, dei clienti, del carrello e così via.