Gli svi­lup­pa­to­ri Andi Gutmans e Zeev Suraski durante gli studi uni­ver­si­ta­ri presso l’uni­ver­si­tà tecnica di Israele avevano col­la­bo­ra­to assieme ai colleghi allo sviluppo del lin­guag­gio di scripting PHP, pro­gram­ma­to da Rasmus Lerdorf. In seguito hanno fondato l’azienda israe­lia­na Zend Tech­no­lo­gies, che nel frattempo è entrata a far parte di Rogue Wave Software, uno dei più grande provider in­di­pen­den­ti di software per diversi tipi di piat­ta­for­me. Nella primavera del 2006 l’azienda di software ha pub­bli­ca­to in anteprima una prima versione alfa del framework con licenza BSD. Suc­ces­si­va­men­te Zend Tech­no­lo­gies ha con­ti­nua­to a lavorare as­si­dua­men­te al mi­glio­ra­men­to del lin­guag­gio open source, pub­bli­can­do lo Zend Engine, un in­ter­pre­te PHP.

Ad oggi Zend Framework è stato scaricato oltre 15 milioni di volte. L’attuale versione 3, su­ben­tra­ta a luglio del 2016 all’an­te­ce­den­te Zend Framework 2.0, non è com­pa­ti­bi­le con i suoi pre­de­ces­so­ri ma fa sì che le ap­pli­ca­zio­ni e i servizi web possano venire rea­liz­za­ti basandosi sulla versione del PHP 5.6 o superiore.

Cos’è Zend Framework?

Zend è un framework orientato agli oggetti e grazie all’ampia com­pa­ti­bi­li­tà del suo assetto può vantarsi di essere la piat­ta­for­ma ideale per lo sviluppo di ap­pli­ca­zio­ni web. La raccolta di pacchetti PHP pro­fes­sio­na­li, integrati all’interno del framework, rap­pre­sen­ta una grande sem­pli­fi­ca­zio­ne che riesce a con­vin­ce­re anche gli svi­lup­pa­to­ri più esperti. Le fun­zio­na­li­tà di base godono di una per­for­man­ce elevata e sono integrate all’interno del software senza una pro­gram­ma­zio­ne par­ti­co­lar­men­te im­pe­gna­ti­va, perciò è possibile con­cen­trar­si sulla rea­liz­za­zio­ne e sulla fun­zio­na­li­tà della propria ap­pli­ca­zio­ne. Zend Framework usu­frui­sce del gestore di pacchetti Composer, dell’ambiente di Unit testing PHPUnit e di Travis CI, un tool per l’in­te­gra­zio­ne con­ti­nua­ti­va grazie al quale è possibile rea­liz­za­re e pub­bli­ca­re au­to­ma­ti­ca­men­te progetti di GitHub. Lavorando co­stan­te­men­te allo sviluppo e al mi­glio­ra­men­to del framework open source, Zend Tech­no­lo­gies riceve anche un notevole supporto da parte di una community di esperti di PHP molto attiva. Oltre a ciò grandi aziende partner di Zend come Google, Microsoft e Adobe, offrono diverse in­ter­fac­ce per il framework collegate ai propri servizi web.

Cosa offre l’ap­pli­ca­zio­ne web?

L’in­stal­la­zio­ne standard di Zend Framework contiene più di 60 pacchetti, i quali sono ve­lo­ce­men­te ese­gui­bi­li tramite Composer e una semplice stringa di codice. Ma nel caso in cui il pacchetto di in­stal­la­zio­ne non dovesse essere contenuto nel gestore di pacchetti del vostro sistema operativo, potrete trovarlo co­mo­da­men­te sul sito ufficiale. In al­ter­na­ti­va potete anche scaricare i pacchetti del framework sin­go­lar­men­te da GitHub. Fra le altre cose è possibile con­ver­ti­re le seguenti funzioni per il vostro progetto web tramite i diversi com­po­nen­ti e classi:

  • Au­ten­ti­fi­ca­zio­ne/gestione utente
  • Accesso al database (CRUD)
  • Sistema di e-mail
  • Lo­ca­liz­za­zio­ne
  • In­di­ciz­za­zio­ne di ricerca
  • Caching
  • Captcha
  • Ar­chi­tet­tu­ra MVC

Il grande vantaggio di Zend Framework è rap­pre­sen­ta­to dal fatto che tutti i com­po­nen­ti sono stati pro­gram­ma­ti in modo tale che siano in­di­pen­den­ti l’uno dall’altro. Proprio questa struttura fa sì che si possano se­le­zio­na­re solo i moduli necessari per la creazione modulare di una piat­ta­for­ma di sviluppo a proprio pia­ci­men­to. Si parla perciò di un glue framework (italiano: “incollare, collegare”). Non fa dif­fe­ren­za se avete bisogno di una prestante ar­chi­tet­tu­ra MVC, di un’in­ter­fac­cia CRUD per l’accesso al database, di pos­si­bi­li­tà di au­ten­ti­fi­ca­zio­ne per diversi gruppi di utenti oppure, ancora, se vi serve il pacchetto completo: in ogni caso sarete sempre at­trez­za­ti al meglio. Con il framework di testing PHPUnit potete ve­ri­fi­ca­re l’avan­za­men­to della pro­gram­ma­zio­ne in maniera attiva e scoprire i punti deboli e i mal­fun­zio­na­men­ti già in fase di sviluppo. La fles­si­bi­li­tà di Zend Framework non è ri­co­no­sci­bi­le soltanto per via della sua ar­chi­tet­tu­ra: pra­ti­ca­men­te tutti i com­po­nen­ti sono uti­liz­za­bi­li senza problemi anche su altri framework PHP come ad esempio CakePHP oppure Symfony.

Il lin­guag­gio PHP come base di sviluppo

I dif­fe­ren­ti com­po­nen­ti di Zend Framework si basano sul lin­guag­gio PHP, cosa che fa del software una scelta ideale per tutti i pro­gram­ma­to­ri che hanno in mente di lavorare con questo lin­guag­gio di scripting. Inoltre il software open source è uti­liz­za­bi­le senza essere provvisti di una licenza a pagamento.

Anche l’hosting e l’uso di una ap­pli­ca­zio­ne web in PHP risultano semplici, sia lavorando in autonomia sia ap­pog­gian­do­si ad un provider esterno, per il cui utilizzo il lin­guag­gio PHP è un elemento im­pre­scin­di­bi­le. Siccome il software gode di grande po­po­la­ri­tà ed è quindi per questo molto diffuso, la community che si è venuta a creare attorno ad esso mette a di­spo­si­zio­ne e cura mol­te­pli­ci manuali, forum e servizi d’as­si­sten­za in più lingue. Oltre a ciò non va di­men­ti­ca­to che i membri re­spon­sa­bi­li e gli svi­lup­pa­to­ri della stessa community prendono at­ti­va­men­te parte allo sviluppo del framework e di Zend Engine.

A partire dalla versione 3 Zend Framework supporta il PHP 7 orientato alla per­for­man­ce, il quale rende lo sviluppo di ap­pli­ca­zio­ni web ancora più potente. Rispetto al PHP 5.6, il suo suc­ces­so­re non promette solamente di offrire una velocità rad­dop­pia­ta, bensì anche di ot­ti­miz­za­re le esigenze di ar­chi­via­zio­ne del vostro progetto web.  

Le varie influenze sullo sviluppo del PHP non sono sempre andate a favore della struttura del lin­guag­gio di scripting. In confronto ai linguaggi con una filosofia di azione ben chiara, come può essere Ruby, l’orien­ta­men­to del PHP è sempre mutato. Dapprima ispirato a Perl, più tardi anche a C, C++ e a Java, a sentire i critici, al lin­guag­gio di scripting man­che­reb­be un senso di unità. Nello specifico la de­no­mi­na­zio­ne delle funzioni e la di­spo­si­zio­ne degli argomenti sono elementi che ri­chie­do­no una spie­ga­zio­ne ap­pro­fon­di­ta, siccome risultano tutt’altro che facili.

I pro­gram­ma­to­ri devono quindi armarsi di pazienza per imparare la realtà del lin­guag­gio open source e per poterlo poi applicare cor­ret­ta­men­te durante la rea­liz­za­zio­ne della propria ap­pli­ca­zio­ne web. L’in­tro­du­zio­ne iniziale al software può apparire semplice a prima vista, se non fosse che, pro­se­guen­do, il processo di ap­pren­di­men­to vada de­ci­sa­men­te più a rilento a causa della mancanza di concetti chiari. L’ar­chi­tet­tu­ra di Zend Framework rap­pre­sen­ta infatti più un ostacolo che un ausilio, poiché gli script già pronti fanno sì ri­spar­mia­re tempo, ma rendono più com­pli­ca­ta la com­pren­sio­ne del back­ground ai prin­ci­pian­ti.

Zend Framework: le esten­sio­ni di­spo­ni­bi­li e il servizio d’as­si­sten­za

Premesso che lo si conosca e no­no­stan­te dimostri lacune dal punto di vista strut­tu­ra­le che in alcuni punti portano a un’inutile com­ples­si­tà, il PHP si annovera a ragione tra i linguaggi di pro­gram­ma­zio­ne lato server più efficaci per lo sviluppo di progetti web. Con il suo framework, Zend mette a di­spo­si­zio­ne degli svi­lup­pa­to­ri esperti uno strumento ottimale che ga­ran­ti­sce un processo di lavoro più veloce. Le funzioni im­por­tan­ti non solo possono venire im­ple­men­ta­te molto fa­cil­men­te per mezzo delle classi e dei com­po­nen­ti all’interno della propria ap­pli­ca­zio­ne web, ma c’è anche la pos­si­bi­li­tà di adattarle alle proprie esigenze. Numerosi com­po­nen­ti, già rie­la­bo­ra­ti, che possono essere scaricati in aggiunta al framework, aumentano ul­te­rior­men­te la varietà di funzioni.

Ugual­men­te varie come lo sono le opzioni relative alle features, lo sono anche le im­po­sta­zio­ni di as­si­sten­za esistenti per Zend Framework: manuali online, tutorial e webinar vengono offerti sia sulla pagina ufficiale sia dai membri della community di Zend. In aggiunta esistono diverse mailing list, canali IRC e forum in varie lingue. Se quindi avete in­ten­zio­ne di mettervi alla prova e capire come funziona l’ar­chi­tet­tu­ra del software o il lin­guag­gio di scripting PHP alla sua base, si­cu­ra­men­te non vi mancherà il materiale da studiare.

Anche il supporto tecnico del framework riesce a con­vin­ce­re: Zend cura l’intero processo di sviluppo dei singoli com­po­nen­ti e per le release maggiori offre un’as­si­sten­za di tre anni. Durante questo arco temporale l’azienda rilascia re­go­lar­men­te piccoli update che vanno a risolvere errori critici, bug e falle di sicurezza. Se voi stessi ne scoprite qualcuno, potete co­mu­ni­car­lo tramite un report di GitHub oppure via mail.  

I vantaggi e gli svantaggi di Zend Framework

Con Zend Framework 3 e il supporto im­ple­men­ta­to del PHP 7, il team di svi­lup­pa­to­ri di Zend ha fatto un passo decisivo in direzione futuro e ha conferito all’ar­chi­tet­tu­ra dell’ap­pli­ca­zio­ne un upgrade come si deve in termini di pre­sta­zio­ne (anche per progetti in PHP 5 meno recenti). Fino ad oggi la velocità delle ap­pli­ca­zio­ni svi­lup­pa­te era stato un frequente punto di critica del framework che oramai si è riusciti a risolvere. Tuttavia l’utilizzo di Zend continua tuttora a portare con sé due notevoli svantaggi.

In­nan­zi­tut­to, per via della sua struttura complessa, non risulta adatto a rea­liz­za­re progetti più piccoli come siti web semplici. A seguire, la com­bi­na­zio­ne di framework e PHP come base per la pro­gram­ma­zio­ne non rende certo facile l’in­tro­du­zio­ne a Zend. Il dispendio di tempo connesso all’ap­pren­di­men­to dell’ar­chi­tet­tu­ra e dei singoli com­po­nen­ti non va affatto preso sotto gamba. A ciò si aggiunge il fatto che il framework non offre un ambiente di testing, per cui si è costretti a uti­liz­za­re il servizio esterno PHPUnit.

La com­ple­tez­za delle funzioni è em­ble­ma­ti­ca della ver­sa­ti­li­tà del web framework. Inoltre l’in­ve­sti­men­to iniziale in termini di impegno viene si­cu­ra­men­te ripagato a lungo termine. Per quanto riguarda la pro­gram­ma­zio­ne, infatti, non sarete costretti a iniziare da zero, poiché di norma c’è la pos­si­bi­li­tà di attingere a dei modelli pre­de­fi­ni­ti. Rimarrà solamente una piccola parte della vostra ap­pli­ca­zio­ne da pro­gram­ma­re au­to­no­ma­men­te.

Grazie al modello MVC la se­pa­ra­zio­ne tra l’in­ter­fac­cia utente (GUI) e la business logic (in italiano “logica di business”, ovvero le pro­gram­ma­zio­ni vere e proprie) non co­sti­tui­sce alcun tipo di problema: il che rap­pre­sen­ta un vantaggio notevole per i progetti web che ri­chie­do­no regolari ade­gua­men­ti al design. Ma in realtà il più grande vantaggio di Zend Framework è rap­pre­sen­ta­to dall’ottimo supporto offerto da Zend Tech­no­lo­gies e dalla ricca community, che da anni con­fe­ri­sce al framework la stabilità e la sicurezza ne­ces­sa­rie.

A chi si adatta l’ar­chi­tet­tu­ra PHP?

La varietà di utilizzo di Zend Framework è di­mo­stra­ta dalla quantità dei progetti rea­liz­za­ti con esso e che sono diventati ormai popolari. Infatti tra le piat­ta­for­me e-commerce che si basano sul framework PHP si ritrovano, ad esempio, Magento e Shopware, il CMS Pimcore, il tool per l’analisi web Piwik come anche il software Webtrees. Nel campo dei CMS e delle piat­ta­for­me e-commerce il fattore più im­por­tan­te è so­prat­tut­to lo schema modulare del framework. L’effetto col­la­te­ra­le positivo è che in caso di com­pli­ca­zio­ni si ha a di­spo­si­zio­ne un grande numero di po­ten­zia­li in­ter­lo­cu­to­ri a cui ri­vol­ger­si. In generale, tuttavia, si riscontra che più il progetto web da pia­ni­fi­ca­re è di piccole di­men­sio­ni, meno si ricorre al framework. Se volete creare una semplice pagina web aziendale oppure un sito web personale ci sono soluzioni de­ci­sa­men­te più ef­fi­cien­ti che sono in grado di prendersi cura in maniera ottimale delle risorse. Anche le vostre pre­fe­ren­ze lin­gui­sti­che giocano un ruolo fon­da­men­ta­le, poiché l’utilizzo di Zend Framework va ine­vi­ta­bil­men­te di pari passo con l’utilizzo del PHP, anche se intendete tra­spor­ta­re i com­po­nen­ti su altri framework. Mentre lo svi­lup­pa­to­re esperto riuscirà, o meglio, sarà obbligato ad adattarsi alle sem­pli­fi­ca­zio­ni, l’approccio al programma sarà invece dop­pia­men­te com­pli­ca­to per i prin­ci­pian­ti: in primis va appreso il lin­guag­gio PHP e in seguito vanno compresi i com­po­nen­ti pre­de­fi­ni­ti. Al­tri­men­ti non è proprio possibile adoperare il framework in maniera fun­zio­na­le per la rea­liz­za­zio­ne e l’adat­ta­men­to del proprio progetto web.

Zend Framework: struttura fles­si­bi­le per progetti moderni in PHP

Se avete in mente di pro­gram­ma­re un’ap­pli­ca­zio­ne web in base al PHP scrivendo ogni singola stringa di codice potete anche ri­nun­cia­re all’utilizzo di Zend Framework senza rimpianti. Se invece siete alla ricerca di as­si­sten­za e supporto che vi facciano ri­spar­mia­re tempo durante il processo di sviluppo, allora vale la pena di prendere in con­si­de­ra­zio­ne l’idea di ricorrere alla piat­ta­for­ma di sviluppo Zend. Con il framework, infatti, sarete in grado di rea­liz­za­re la vostra ap­pli­ca­zio­ne web con l’aiuto di pacchetti PHP completi senza dover scrivere il codice di sana pianta. Il sistema operativo e il server web sono a scelta, poiché il PHP è un lin­guag­gio di scripting del tutto affermato e viene perciò sup­por­ta­to da qualsiasi piat­ta­for­ma e software moderni.

A partire dalla versione 3, Zend Framework supporta anche il PHP 7, cosa che con­fe­ri­sce una spinta ag­giun­ti­va in termini di velocità alle ap­pli­ca­zio­ni rea­liz­za­te con la struttura dell’ap­pli­ca­zio­ne web. Siccome c’è una grande community che offre aiuto per quanto riguarda il lin­guag­gio di scripting e anche il framework, in caso di domande e problemi sarete in buone mani. Tuttavia la grande dif­fu­sio­ne fa anche sì che molti cyber criminali si in­tru­fo­li­no all’interno di Zend Framework e delle ap­pli­ca­zio­ni svi­lup­pa­te, alla ricerca di vul­ne­ra­bi­li­tà. Per cui, proprio per evitare il rischio di eventuali attacchi esterni, è ne­ces­sa­rio scrivere un codice pulito e sicuro, e ciò è possibile grazie all’as­si­sten­za offerta. Oltre a ciò, tutti gli utenti del framework hanno la pos­si­bi­li­tà di co­mu­ni­ca­re eventuali falle di sicurezza, così che possano venire risolte al più presto.

Vai al menu prin­ci­pa­le