Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Zend Framework: il re dei framework php

Zend Framework è il framework php più noto. Comprende un solido modello MVC, un gran numero di classi e molte librerie per estenderne le funzionalità
Zend Framework è il framework php più noto. Comprende un solido modello MVC, un gran numero di classi e molte librerie per estenderne le funzionalità
Link copiato negli appunti

Questo articolo fa parte di una serie dedicata alla comparazione di Framework PHP.

Zend Framework (noto anche come ZF) è senza dubbio uno dei framework più conosciuti tra i programmatori PHP. I requisiti minimi per l'Installazione indicano la 5.2.4 come versione PHP consigliata per motivi di sicurezza. Secondo gli autori i vari moduli hanno poche dipendenze tra loro per questo è possibile scaricare solo quello di cui si ha bisogno.

Installazione

La pagina del download mette a disposizione numerosi strumenti. Per cominciare esistono due versioni del framework: una light e una full. Ovviamente il consiglio è di scaricare la versione full per avere subito tutti gli strumenti a disposizione. C'è inoltre la possibilità di scaricare anche Zend server che consente di implementare rapidamente un ambiente di sviluppo.

Per rendere operativo o quasi il framework è sufficiente copiarlo in una cartella sul nostro server. Da notare che si consiglia, quando possibile, di modificare l'include path del file php.ini per includere la directory library di zend. Per creare un nuovo progetto si devono eseguire da linea di comando uno dei file presenti nella cartella bin del framework. Ovviamente si utilizzerà il file bat in ambiente windows e il file sh in ambiente linux. Qualora non si abbia la possibilità di modificare il php.ini bisogna caricare le librerie dalla cartella in cui abbiamo scompattato il framework a quella library della nostra applicazioni.

Questo genere di approccio non mi lascia soddisfatto. Preferisco di gran lunga fare il tutto con un semplice click! Del resto lo scopo del framework dovrebbe essere quello di facilitare la vita allo sviluppatore. Il file di configurazione è un file .ini mentre un altro file , Bootstrap.php, situato nella cartella application, indica quali elementi inizializzare.

Pattern MVC

Anche ZF integra il pattern MVC per le proprie applicazioni. I file sono celati all'interno della cartella application che non è accessibile all'utente finale. Ci sono le solite tre cartelle ovvero controllers, models e per finire views.

Anche in questo caso il controller principale è il controller index. All'interno, quando si crea l'applicazione come descritto in precedenza, vengono solo integrati il metodo init e index. Da notare che le azioni nel controller devono essere seguite dal nome Action scritto con la a maiuscola. Esiste un controller dedicato alla gestione degli errori definito, appunto, ErrorController. Il metodo init, come si intuisce dal nome, inizializza il controller. In esso è possibile apportare le modifiche affinché la vista non sia implementata nel controller in modo automatico. Questa procedura, che non è unica, non rientra però nell'ambito di questo articolo. In merito alle viste appare chiaro che queste di default vengono implementate nel controller senza che lo sviluppatore debba aggiungere altro.

Le viste sono disposte all'interno della cartella views/scripts/ all'interno di una sotto cartella che ha il nome del controller. I file possono essere sia di tipo html che di tipo Php. In realtà il render delle viste è molto più complesso di quello appena descritto, ma analizzarlo andrebbe al di là dei limiti di questo articolo. L'unica cosa da aggiungere alle viste è che, per passare parametri alla vista, è sufficiente valorizzare la proprietà view del controller, $this->view->nomeproprietà = $valore.

L'ultima parte del MVC in zend riguarda i model. Il nome del model è semplicemente Model_ più il nome del controller. All'interno di un controller per riferirsi al model è sufficiente creare una istanza del model stesso. Esso rappresenta una classe che estende la classe base Zend_db_table. Appare evidente quindi, che il model rappresenta in Zend una tabella all'interno del nostro database.

Database

Come spiegato nel paragrafo precedente l'interazione con il database in ZF avviene mediante l'ausilio dei model. Un model infatti estende la classe Zend_db_table che ci consente di effettuare una serie di operazioni sul nostro database. Gli unici vincoli che gli autori hanno imposto, sono quelli di dover necessariamente valorizzare le proprietà $_name, che rappresenta il nome reale della tabella nel nostro db, e $_primary che chiaramente si riferisce alla chiave primaria. All'interno del model possiamo definire i vari metodi come riteniamo più opportuno non dimenticandoci che la nostra classe estende una classe base e quindi è possibile usufruire dei suoi metodi che consentono di effettuare le operazioni CRUD in modo semplice e veloce. Su alcuni siti si parla della necessità di immettere alcune funzioni all'interno del blocco try catch in modo da prevenire il blocco del sistema.

Validazione

Una delle funzionalità offerte da Zend è quella di creare in modo semplice e veloce i form. Questa è una di quelle cose che per gli altri framework è stata inserita nel paragrafo ulteriori caratteristiche. In questo caso validazione e filtraggio dei campi avvengono in fase di creazione del form stesso. È sufficiente infatti, durante la fase di creazione del form, utilizzare i metodi addFilter, addValidator e getValidator per implementare validazione e filtraggio dell'input dell'utente. Inutile dire che si cono filtri e sistemi di validazione per moltissimi dei casi più comuni. Va inoltre specificato che è possibile fare la validazione dei dati semplicemente sfruttando la classe zend_validate e quindi all'interno del nostro model.

Ajax

Mi lascia perplesso il fatto di non aver trovato in rete niente che indicasse in Zend la possibilità di scrivere velocemente codice JavaScript e di conseguenza effettuare chiamate Ajax. Non tanto perché ritenga che in un framework Php questa funzionalità sia necessaria, quanto per il fatto che alcuni dei "concorrenti" ne sono provvisti.

Caching

Zend implementa una classe di tipo generico che si occupa del caching dei dati. In realtà il tutto è configurabile e questo consente, in modo semplice e veloce, di creare sistemi di cache scalari. Se si da uno sguardo alla documentazione di Zend, ci si rende conto di quanto sia complesso e articolato il sistema che usa ZF per il caching delle informazioni. Questa cosa sicuramente scoraggia i meno esperti ma allo stesso tempo rende l'idea di come sia stata ben sviluppata questa sezione.

Autenticazione

Il sistema che usa ZF per l'autenticazione e il controllo dei ruoli risulta molto interessante nonostante la sua semplicità. Ci sono due classi distinte che si occupano della cosa: zend_auth e zend_acl. La prima è responsabile di verificare se un utente è autenticato o meno. Con poche righe di codice è possibile creare aree riservate all'interno della nostra applicazione. Mediante l'utilizzo della seconda classe è invece possibile effettuare un controllo di tipo ACL, ovvero di verificare se un determinato utente ha i permessi per eseguire una determinata azione o di visualizzare una determinata cosa. Interessante in merito all'autenticazione di ZF è l'utilizzo di appositi adapter che consento di passare l'autenticazione degli utenti da un sistema ad un altro come ad esempio da un'autenticazione su database o http ad una che si basi su LDAP.

Internazionalizzazione e localizzazione

Come era lecito aspettarsi, un prodotto del genere non poteva non avere una classe che si occupi della localizzazione delle applicazioni. La localizzazione avviene mediante la classe Zend_locale. Questa classe va configurata in modo tale da utilizzare la localizzazione desiderata. Una volta configurata questa classe, in merito si veda la documentazione ufficiale, per sfruttarla è sufficiente richiamare le classi che ne fanno uso. Un esempio su tutti è dato da Zend_date. Passano al costruttore l'istanza 'locale' creata, si visualizzerà la data nel formato corretto.

Supporto e guide

Come detto all'inizio del paragrafo ZF è senza dubbio uno dei framework più conosciuti. La documentazione sul sito ufficiale è abbastanza soddisfacente e chiara ma è, inutile a dirlo, in inglese. Esiste anche la possibilità di visualizzarla in altre lingue solo che, al momento in cui sto scrivendo, mi fornisce un errore come risultato delle ricerche. Oltre alla guida sono presente un forum e una pagina wiki entrambi in lingua inglese. Il forum non sembra molto attivo.

Ulteriori caratteristiche

Zend offre un gran numero di librerie per realizzare quasi tutto quello di cui abbiamo bisogno all'interno di una nostra applicazione web. Tutte le librerie sono disponibili all'interno del framework quando, come consigliato all'inizio, ne scarichiamo la versione completa. Ci sono librerie che consentono di creare velocemente form oppure di creare pdf senza dimenticare il captcha e molte altre.

Guida ai Framework PHP

  • Articolo 1: dooPHP
  • Articolo 2: YII
  • Articolo 3: Symfony
  • Articolo 4: CodeIgniter
  • Articolo 5: Zend
  • Articolo 6: Kohana (in via di pubblicazione)
  • Articolo 7: Akelos (in via di pubblicazione)
  • Articolo 8: CakePhp (in via di pubblicazione)

Indice di tutti gli articoli.

Ti consigliamo anche