Il pattern MVC e Zend Framework – terza parte
PHP e Zend Framework
di Sergio Vaccaro
La realizzazione di un progetto in PHP è decisamente “potenziata” dall’uso di Zend Framework.
Un framework è soprattutto una collezione di librerie di supporto alla programmazione. In termini di programmazione OOP, di cui abbiamo parlato in un precedente post, un framework è soprattutto una collezione di classi.
Il Framework di Zend è scritto interamente in PHP, è Open Source (sarebbe stato difficile concepire il contrario), quindi è libero e gratuito.
Viene rilasciato con licenza BSD, la più libera di tutte. La licenza BSD, infatti, consente di reintrodurre in circolazione anche versioni modificate del codice sottoposte a licenza diversa da quelle open (quindi anche a codice chiuso e/o commerciale).
Il carattere aperto del framework ha un riscontro immediato sia nella vivacità del suo bugzilla (5008 bug segnalati e 3800 risolti negli ultimi 2 anni) e soprattutto nella ricchissima sezione Proposers del Wiki, con decine e decine di nuove classi in cantiere.
L’effetto immediato è un susseguirsi incalzante di versioni (tutte retrocompatibili) che hanno portato il framework dalla versione 1.5 alla 1.7.8 nel giro di poco più di un anno.
Le classi sono raggruppate in categorie (oggi le categorie sono 51) e si va dai più tradizionali strumenti di sviluppo (interazione con i database, strumenti di autenticazione, mail, sessioni, validazioni, ecc.) ad una lunga serie di strumenti utili per utilizzare/realizzare API di varia natura (JSON, XML, XMLRPC, SOAP, ecc.), fino a un’ampia collezione di strumenti già pronti per l’utilizzo dei servizi più popolari (Akismet, Amazon, Audioscrobbler, Delicious, Flickr, Nirvanix, reCAPTCHA, Simpy, SlideShare, StrikeIron, Technorati, Twitter e naturalmente le ricerche di Yahoo e il vastissimo universo di Google Data).
Zend Framework è uno strumento delizioso, per chi lo usa. Un po’ indigesto al primo assaggio, fornisce in realtà un patrimonio numeroso, completo e versatile di classi. E’ uno strumento modernissimo soggetto ad aggiornamenti incalzanti, costituisce un invito all’utilizzo di tecniche altrimenti scomode o poco note e anche una positiva sollecitazione all’uso di best pratices.
Zend Framework, come altri framework, implementa anche il pattern MVC, di cui abbiamo parlato in un precedente post.
Grazie alle classi generalmente disponibili, la preparazione del modello (la M dell’acronimo) risulta fortemente agevolata.
Tra le classi a disposizione ne troviamo alcune specializzate nel gestire l’acquisizione e l’analisi della richiesta, il suo smistamento tra le varie classi, il montaggio degli oggetti necessari, un gran quantitativo di accessori e così via.
Tutti questi strumenti consentono di realizzare un ottima gestione del processo e quindi di scrivere un controller (la C dell’acronimo) di ottima qualità.
Inoltre possiede uno strumento estremamente versatile per iniettare le informazioni di output verso layout differenziati e sofisticati (la V dell’acronimo), sia attraverso una gestione dei template nativa e sia utilizzando differenti gestori dei template (come Smarty).
È difficile dirne di più senza addentrarsi nei labirinti del codice (che però, grazie a ZF, diventa molto più luminoso).
Va detto però che lo sviluppo di applicazioni in PHP utilizzando Zend Framework consiste in attività che si concentrano molto di più sulla qualità, sulla cura dei dettagli, sulla versatilità, ecc.
Chi sviluppa utilizzando Zend Framework è fortemente sollevato dalla realizzazione di task ordinari e deve concentrarsi solo sugli aspetti di innovazione e di invenzione, producendo applicazioni migliori, estremamente moderne e di grande eleganza.

