La creatura destinata alla sviluppo di Zend, azienda che si occupa della diffusione e distribuzione del famoso linguaggio di scripting PHP, è disponibile per il download nella sua “incarnazione” 1.6. Vediamo quali sono le sue novità.
Lo Zend Framework (da ora in poi ZF) è un complesso tool per lo svilupo di applicazioni web orientato a oggetti (PHP > 5.x) rilasciato sotto licenza BSD, quindi Open Source. Interessante la scelta, forse obbligata dalla concorrenza, da parte di Zend di adottare un sistema di sviluppo aperto dei propri prodotti (oltre a ZF, anche il plugin PDT per Eclipse), dopo aver promulgato per anni scelte commerciali.
Lo ZF adotta un sistema di approccio assai flessibile e lascia allo sviluppatore la scelta di quale sistema di progettazione e successiva realizzazione adottare: mutuando le parole della stessa Zend “A ‘use-at-will’ design” (trad. Progettazione basata sulla libera scelta). In pratica si ha a disposizione uno strumento potente, non invadente, che richiede una curva di apprendimento, per uno sviluppatore esperto, rapida e non dicotomica: ZF non impone l’adozione completa di un modello di sviluppo pensato e realizzato da altri (p.es MVC) a priori, e consente modelli di sviluppo misti.
L’installazione è semplice: si scarica il pacchetto e si decomprime in una directory a scelta, dopodiché è importante definire il percorso per il recupero delle librerie di Zend, all’interno:
1) del file di configurazione php.ini nella direttiva “include_path”
2) del proprio/i script utilizzando la funzione “get_include_path” assieme alla funzione “set_include_path”.
La posizione dell’intera alberatura del pacchetto può essere, pertanto, sia in una directory esposta sul web che non. Si manifesta anche in questo caso la flessibilità di ZF che può essere adottato come scelta all’interno di spazi hosting più economici, senza gestione e/o accesso diretto alla macchina server.
Funzione utilissima nel setting dell’intero ZF la configurazione di più ambienti di sviluppo in un solo file: attraverso un file di testo (xml o plain text con sintassi condivisa) possono essere definiti i parametri del funzionamento dell’intero sito (percorso fisico, url, connessione al db, ed ulteriori parametri personalizzabili) tali che al cambiare dell’ambiente di sviluppo (switch tra macchina di sviluppo e macchina di produzione) non ci sia la necessità di modificare alcunché dell’intero sito tranne il file di configurazione stesso. Stesso dicasi per la classe di astrazione dedicata ai database: consente di rimanere slegati dal database server (caratteristica ereditata dall’estensione PEAR:DB poi confluita in PEAR:MDB2) ricreando le relazioni fra i dati, potendo così migrare la nostra applicazione da Mysql a PostgreSql in maniera pressoché indolore.
Dando uno sguardo alla Reference Guide, abbiamo a colpo d’occhio una panoramica delle classi a disposizione in cui spiccano: funzioni per la gestione dei dati basati su ORM (Object Relational Mapping) come Zend_Db o Zend_Ldap, la gestione dello sviluppo secondo il famoso e in voga MVC (Model View Controller), gestione dei dati (Zend_Form, Zend_Captcha, Zend_File, Zend_Pdf, Zend_Mail), pubblicazione di informazioni (Zend_Feed), a fianco di tool interessanti per l’interazione con servizi di social network quali Youtube, Flickr, Technocrati, Audioscrobbler ed altri. Fa storia a sé l’intero settore Zend_Gdata dedicato all’universo Google con classi studiate per poter lavorare con Documents, Spreadsheet, Picasa, Calendar.
Pecca, a nostro avviso, la carenza di un’interazione con Maps. Invitiamo il lettore interessato a prendere atto delle varie feature presenti nella guida di riferimento, tutte ottimamente corredate da un’ampia documentazione tecnica suddivisa in esempi di lavoro pratici. A suggello di una documentazione così estesa troviamo anche una nutrita sezione multimediale suddivisa in webinars, podcast e video tutorial, al seguente indirizzo.
La vera novità della release 1.6 è l’adozione di un framework Javascript, vera pecca nelle release precedenti dello ZF. L’accordo suggellatosi nel maggio di questo anno fra l’azienda Israeliana a il consorzio Open Source Dojo ha prodotto i primi frutti lavorativi pochi mesi dopo con la classe Zend_Dojo. A fianco del potente strumento JSon per lo scambio dei dati tra applicazioni lato server (PHP nel nostro caso) e lato client (Javascript), è il momento di strizzare l’occhio alle esigenze del momento di creare applicazioni funzionali e al contempo gradevoli allo sguardo.
Tra le motivazioni dell’accordo con Dojo, Zend sottolinea l’importanza della condivisione della licenza BSD (più permissiva della GPLv2, soprattutto per la questione di sviluppo di applicazioni commerciali), degli accordi stile Apache License per chi contribuisce allo sviluppo del toolkit e del framework, il supporto al già citato approccio “use-at-will”, alle tecnologie Ajax, al formato JSon, il contributo per e della comunità.
In conclusione la polimorfia di cui è affetto ZF lo rende assolutamente integrato e allineato con i concetti di libera scelta e alternativa che caratterizzano il panorama del OSS, oltre a garantire un’ottima stabilità e pulizia del codice che lo rendono assolutamente appetibile e fruibile in ambienti di produzione. La Zend ha colto in pieno e maturato l’esperienza offerta dal modello Open Source. ZF fin dal principio è stato costruito all’interno di questo modello e nella sua forma definita ne ha incarnato i principi.
di Lorenzo Lombardi - TuxJournal.net