A parità di fattori la spiegazione più semplice tende ad essere quella esatta

Zend Framework

zend
Questo articolo vuole essere una guida per tutti coloro che hanno voglia di capire come funzionano tutti quei siti internet come Facebook, Drupal, Joomla, WordPress, Wikipedia ecc.

Effettivamente l’espressione “sito internet” in questa circostanza è decisamente riduttiva, infatti queste sono vere e proprie applicazioni web-based che offrono all’utente una quantità impressionante di funzionalità. Questa realtà è stata introdotta e si è radicata nella rete grazie al cosiddetto web 2.0.

Ma veniamo al dunque:

Cos’è un framework?

Nella produzione del software, il framework è una struttura di supporto su cui un software può essere organizzato e progettato. Alla base di un framework c’è sempre una serie di librerie di codice utilizzabili con uno o più linguaggi di programmazione, spesso corredate da una serie di strumenti di supporto allo sviluppo del software, come ad esempio un IDE, un debugger, o altri strumenti ideati per aumentare la velocità di sviluppo del prodotto finito.

Perché un framework?

Lo scopo di un framework è di risparmiare allo sviluppatore la riscrittura di codice già steso in precedenza per compiti simili. Questa circostanza si è presentata sempre più spesso man mano che le interfacce utente sono diventate sempre più complesse, o più in generale man mano che è aumentata la quantità di software con funzionalità secondarie simili.

Linguaggi per il web

Per realizzare applicazione web dinamiche ci sono diversi linguaggi ciascuno con pregi e difetti, i piu famosi sono sicuramente PHP, ASP e JSP. Certamente tra questi quello che ha avuto piu successo è PHP.

PHP (acronimo ricorsivo di PHP Hypertext Preprocessor, preprocessore di ipertesti) è un linguaggio di scripting interpretato, con licenza open source e parzialmente libera (ma incompatibile con la GPL), originariamente concepito per la realizzazione di pagine web dinamiche. Attualmente è utilizzato principalmente per sviluppare applicazioni web lato server ma può essere usato anche per scrivere script a linea di comando o applicazioni standalone con interfaccia grafica. Il motore di PHP è chiamato Zend (dai due sviluppatori Zeev Suraski e Andi Gutmans).

Zend framework

PHP ha riscosso un grande successo sicuramente per la sua semplicità d’utilizzo nei siti dinamici. Al contrario, per applicazioni di grosse dimensioni, PHP non si dimostrava così performante tanto da risultare in queste circostanze macchinoso.

Per questo motivo gli sviluppatori Zend hanno deciso che bisognava creare delle librerie per facilitare la scrittura di grosse applicazioni tipicamente “Enterprise Application” ed agevolare la produttività. L’insieme di queste librerie rappresenta il Framework Zend.

Pattern MVC

Il framework, come detto mette a disposizione una serie di librerie di supporto alla programmazione. Gli sviluppatori hanno pensato che la soluzione che meglio può aiutare i programmatori è quella d’implementare il framework con il pattern MVC (Model-View-Controller). Nell’ingegneria del software, un design pattern (struttura di progettazione) può essere definito “una soluzione progettuale generale a un problema ricorrente”. Esso non è una libreria o un componente di software riusabile, quanto una descrizione o un modello da applicare per risolvere un problema che può presentarsi in diverse situazioni durante la progettazione e lo sviluppo del software.

La differenza tra un algoritmo e un design pattern è che il primo risolve problemi computazionali, mentre il secondo è legato agli aspetti progettuali del software.

Model-View-Controller è un pattern architetturale molto diffuso nello sviluppo di interfacce grafiche di sistemi software object-oriented.

Questo pattern è basato sulla separazione dei compiti fra i componenti software che interpretano tre ruoli principali:

* il model fornisce i metodi per accedere ai dati utili all’applicazione;

* il view visualizza i dati contenuti nel model e si occupa dell’interazione con utenti e agenti;

* il controller riceve i comandi dell’utente (in genere attraverso il view) e li attua modificando lo stato degli altri due componenti.

Questo schema, fra l’altro, implica anche la tradizionale separazione fra la logica applicativa (in questo contesto spesso chiamata “logica di business”), a carico del controller e del model, e l’interfaccia utente a carico del view.

I dettagli delle interazioni fra questi tre oggetti software dipendono molto dalle tecnologie usate (linguaggio di programmazione, eventuali librerie, middleware e via dicendo) e dal tipo di applicazione (per esempio se si tratta di un’applicazione web, o di un’applicazione desktop). Quasi sempre la relazione fra view e model è descrivibile anche come istanza del pattern Observer. A volte, quando è necessario cambiare il comportamento standard dell’applicazione a seconda delle circostanze, il controller implementa anche il pattern Strategy.

Viene da sé capire l’importanza di questo approccio allo sviluppo, che permette, in ambito web, la realizzazione di applicazioni abbastanza complesse; basti pensare alla chat di facebook o a quella di Google (Gtalk).

Altri framework

Ovviamente, per avvere applicazioni complesse che permettano una forte interazione con l’utente si necessita di altre tecnologie oltre a quella server-side fornita da php. Nello specifico javascript, essendo client-side offre possibilità di natura diversa, come ad esempio eventi in real-time generati sul browser. Ovviamente anche in questo caso utilizzare javascript può risultare molto complesso, per questo hanno sviluppato anche framework per js, tra i più famosi Dojo, jQuery, Prototype, mooTools.

Personalmente apprezzo molto jQuery, che appunto offre una serie di librerie che facilitano l’implementazione di feature complesse nell’applicazione client-side grazie anche ad AJAX, che permette una comunicazione asincrona tra il client ed il server, utile – ovviamente combinato a php – per realizzare ad esempio una chat come quella di facebook.

Risorse

Un ottimo IDE che facilita la scrittura di applicazioni php con il framework Zend è “Zend Studio” basato su “Eclipse”. E’ però a pagamento. In alternativa si posso usare IDE altrettanto validi come ad esempio NetBeans e lo stesso Eclipse, ovviamente non hanno nativamente il supporto alla creazione di progetti Zend, quindi bisogna creare l’albero delle directory a mano.

Per quanto riguarda la documentazione, esistono una serie di manuali e libri, come Zend in Action che spiegano come usare il framework; alternativamente sul sito del framework esiste tutta la descrizione delle librerie.

Fonti: wikipedia

Annunci

Commenti su: "Zend Framework" (3)

  1. Hello! I know this is kinda off topic but I was wondering which blog platform are
    you using for this site? I’m getting fed up of WordPress because I’ve had problems with hackers and I’m looking at options for another platform. I would be fantastic if you could point me in the direction of a good platform.

  2. I every time emailed this webpage post page to all my contacts, since if
    like to read it then my contacts will too.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: