Davide Gullo, Consulente web

08.02.2012
06:13 (+00:00)
06a settimana
38o giorno

  "E il mare il web concederà ad ogni uomo nuove speranze, come il sonno i sogni..." Cristoforo Colombo

Zend Framework, teoria di base (Componenti)

giovedì, 27 agosto 2009

Zend Framework Logo

Avrei dovuto scrivere questo post all’inizio, forse sarebbe stato il primo di una lunga serie. Lo faccio oggi perchè ho una tale confusione in testa che è necessario mettere ordine. Il modo migliore, come sempre, è quello di scrivere nero su bianco ciò che sei sicuro di aver appreso. In realtà poi, scrivendo, approfondisci e impari cose nuove.

Zend Framework è composto da diversi componenti (Zend_Controller, Zend_Config, Zend_Db, ecc.) che sfruttano famosi ed ultra utlizzati Design pattern (soluzioni condivise a problemi comuni, detta in maniera molto sintetica). Ogni componente comprende diverse altre classi oltre alla principale la quale prende il nome del componente stesso. Zend_Config, ad esempio, contiene Zend_Config_Ini, Zend_Config_Xml e altri. Ognuno di questi componenti secondari può a sua volta contenerne altri. Il nostro lavoro, nella maggior parte dei casi, si interfaccerà ai componenti principali i quali effettueranno chiamate ai secondari a seconda delle nostre richieste ed esigenze. Ovviamente siamo liberi di chiamare qualsiasi componente di qualsiasi livello esso sia.

I componenti di base possono essere suddivisi in 6 gruppi:

Questi sono solo alcuni dell’elenco dei componenti dello Zend Framework. Ne esistono tanti altri e Zend ne sforna dei nuovi quasi ad ogni release. I componenti spesso nascono sulla base delle richieste della community degli sviluppatori che, per stare al passo col web e le sue innovazioni, necessitano sempre più spesso di componenti solidi, testati e stabili.

Vediamo ora una panoramica sui vari gruppi di componenti.

MVC

Questi componenti servono per gestire al meglio il pattern MVC (Model, View, Controller). Tale pattern è nato per separare, durante la scrittura del codice, la logica applicativa (Model e Controller) dalle viste (View).
Il componente Zend_Controller fornisce un ulteriore design pattern, definito Front Controller, che si occupa essenzialmente di svolgere le operazioni di gestione delle richieste effettuate ad un server web.

Fanno parte di questo gruppo poi i componenti Zend_View e Zend_Layout che si occupano di gestire l’organizzazione delle viste. I due componenti coprono ogni esigenza, dalla semplice visualizzazione di un “template” a strutture complesse basate su moduli in cui la pagina viene realizzata mettendo insieme diversi template, magari dove ognuno lavora in propria autonomia.

Internazionalizzazione

Sono una serie di utili componenti che agevolano le operazioni di internazionalizzazione di un sito/applicativo. Sempre più spesso necessitiamo di rendere il nostro sito multilinga (per questo c’è Zend_Transalte) ma non sempre è abbastanza. Un inglese legge e scrive le date in modo diverso da un italiano (Zend_Date) e utilizza una valuta diversa (Zend_Currency). Poi potremmo avere problemi nella gestione dei fusi orari e codici internazionali (Zend_Locale).

Servizi Web

Ogni giorno nascono nuovi siti web potenzialmente destinati al successo. La condivisione dei contenuti tra i diversi siti sta prendendo sempre più piede ed oggi è necessaria. Questi componenti consentono l’accesso ai più famosi servizi web, dai famosi RSS Feed a Google, Yahoo, Amazon, ecc e relative API.

Autenticazione e accessi

Gli utenti accedono ai siti autenticandosi e per ognuno di essi potremmo gestire diversi livelli di interazione. Questi componenti supportano queste operazioni: Zend_Auth, in collaborazione con Zend_Session, è un ottimo strumento di identificazione dell’utente, cosa poi questo potrà fare sul nostro sito lo gestiremo con Zend_Acl.

Comunicazione tra applicazioni

Vale lo stesso discorso della condivisione visto prima per i Servizi Web. Questi componenti, a differenza di quelli di prima, consentono di interfacciarsi ad altri siti web, attraverso il protocollo HTTP (Zend_Http), comunicando con diversi formati di trasferimento dati: XML, SOAP, JSON, ecc.

Core

In questa categoria rientrano tutti gli altri componenti che non hanno un uso specifico come i precendenti. Alcuni di loro ricoprono un ruolo fondamentale (Zend_Db) e nel 99% dei casi ne farete utilizzo. Altri serviranno raramente ma è bene tenere presente che esistono: Zend_Form per una rapida realizzazione di form, Zend_Validate per validare i dati inviati dagli utenti, Zend_Filter per filtrare e sostituire eventuali dati errati, Zend_Mail per inviare in maniera sicura e semplice email, Zend_Pdf per restituire eventuali file in formato PDF, ecc.

1 commento

Scrivi un commento
Istruzioni e suggerimenti

A capo e la separazione tra i paragrafi sono automatici.
L'indirizzo e-mail non verrà mai mostrato.
Il codice HTML permesso è:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">
I campi con * sono obbligatori.





TrackBack

TrackBack URI per questo articolo

 

Pinguino imperatore

Aptenodytes forsteri,
descritto da G. R. Gray nel 1844, Mari Antartici.

Tux è la mascotte ufficiale del kernel Linux. Creato da Larry Ewing nel 1996, è un pinguino paffuto dall'aria contenta. L'idea che la mascotte di Linux dovesse essere un pinguino venne da Linus Torvalds, il creatore del kernel Linux.
[FSF Associate Member]
Free Software Foundation
Associate Member
Join!
Davide Gullo
   Crea il tuo badge