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

Ajax e framework PHP: una panoramica

Una panoramica commentata sui principali framework Ajax/PHP
Una panoramica commentata sui principali framework Ajax/PHP
Link copiato negli appunti

PHP, il linguaggio Open Source più usato sul web è noto per offrire una grande quantità di librerie e strumenti in grado di soddisfare, spesso a pieno, le esigenze degli sviluppatori. Anche in ambito Ajax esiste una moltitudine di framework più o meno completi o potenti. In questo articolo (in due parti) presentiamo una panoramica dei framework più noti, enunciando di ciascuno le caratteristiche principali, punti di forza e punti deboli.

Descrizione

Si presenta come un framework leggero ed è uno dei più compatibili sia lato client sia lato server. Adatto a PHP 4 e PHP 5, sembra non abbia un browser moderno in grado di non supportarlo.

Impressioni

Al primo tentativo di utilizzo, sfruttando la demo proposta, si è verificato un errore. Una partenza decisamente disastrosa considerando che di tanti framework disponibili è tra i pochi a pagamento. Un'analisi sul codice server e client delude allo stesso modo, un approccio totalmente procedurale sul primo ed un codice al limite del già visto sul secondo. L'oggetto ActiveX creato dalla libreria non è infatti il migliore tra i disponibili, mentre il resto del codice si basa su elementi globali, avvisi modali (alert) ed altro non facilmente gestibile.

Pregi

  • libreria client dal peso contenuto;
  • compatibilità multi piattaforma e multi versione server.

Difetti

  • bisogna pagare per usarlo ma non ha nulla di speciale rispetto ad altri framework;
  • la licenza mostrata sul client è più corposa del codice proposto;
  • approccio server side macchinoso, poco intuitivo, procedurale;
  • possibilità di gestione eventi durante l'interazione limitatissima.

Giudizio

Difficile dare un giudizio positivo per questo framework tanto leggero quanto limitato. Richiede una spesa seppur contenuta vantando semplicemente le solite cose.

Descrizione

Più che di una libreria, si tratta una classe compatibile con PHP 4 in grado di esportare delle funzioni definite dallo sviluppatore e di generare in automatico il JavaScript necessario ad effetuare le richieste asincrone.

Impressioni

Il livello di controllo e la qualità del codice client e server non sono ai vertici della classifica ma l'utilizzo è estremamente semplice e può quindi giustificare le citate mancanze.

Pregi

  • semplicissima da usare;
  • si basa su un singolo file ed una singola classe;
  • adatta a tutti gli sviluppatori.

Difetti

  • codice client e server non eccellente;
  • poca flessibilità;
  • non troppo sicura.

Giudizio

Il punto più critico è proprio la sicurezza di questa libreria, diciamo non ai massimi livelli ma nemmeno critica. Non è possibile usare funzioni non esplicitamente esportate nel codice server ma è possibile richiamarle inviando argomenti a piacere senza opzioni per filtrare i dati in ingresso. Non il massimo ma spesso nemmeno un problema, quindi in generale questa classe è da considerarsi come un'ottima soluzione per interazioni medio-semplici.

Descrizione

Una libreria per il solo PHP 5 e tra le prime della lista basate sullo scambio dati attraverso JSON. Un progetto tanto interessante quanto dubbio, soprattutto perchè fermo dallo scorso anno, quando fece scalpore.

Impressioni

Il concetto alla base è avanzato: utilizzare metodi ed oggetti server tramite l'interazione asincrona sfruttando un protocollo leggero e potente quale è JSON. La documentazione è molto testuale e non per questo pessima, ma lo stato abbandonato della libreria non ispira troppa fiducia.

Pregi

  • concettualmente avanzata;
  • richiede poca banda grazie all'uso di JSON.

Difetti

  • sembra abbandonata;
  • richiede capacità e conoscenze medio-alte per essere utilizzata al meglio;
  • performance in elaborazione e risposta deludenti.

Giudizio

C'è tutto... ma non c'è supporto. Nessun aggiornamento, nessuna novità, nessuna miglioria. Se non fosse apparentemente abbandonata sarebbe un'ottima libreria adatta alle interazioni più avanzate. Giudizio positivo quindi in partenza ma ad oggi deludente.

Descrizione

Un progetto ambizioso, completo e totalmente orientato agli oggetti attualmente però non ai massimi livelli.

Impressioni

La roadmap proposta sul sito sembra essere la cosa più interessante, ma oltre a quella c'è ancora poco. Un libreria in cui si estende la classe dedicata per creare interazioni, in cui tutto è elegante ma in cui niente, o quasi, è documentato. Il Javascript creato in automatico è tanto, troppo, e si spera che gli obiettivi prefissati dal gruppo di sviluppo siano presto raggiunti.

Pregi

  • codice object oriented;
  • abbastanza completa;
  • roadmap degna di nota.

Difetti

  • la roadmap è più interessante della libreria;
  • manca la documentazione;
  • interazione molto lenta.

Giudizio

Discreto. Si spera diventerà ottimo con il rilascio della prossima release.

Descrizione

La filosofia che sta dietro questo framework è chiamata KISS, ed è il termine più adatto per descriverlo. Compatibilità e semplicità sono le parole d'ordine e la buona documentazione completa l'insieme.

Impressioni

Sincrona o asincrona, la semplicità è quasi sbalorditiva. Si definiscono funzioni, si include un singolo file e si inizializza una istanza della classe agent. Si possono ricevere o inviare variabili semplici come complesse, quindi sembra essere adatta a risolvere in modo efficace la maggior parte delle problematiche.

Pregi

  • semplice e veloce, grazie anche allo scambio dati in JSON;
  • possibilità sincrona ed asincrona;
  • ottima per interazioni base ed avanzate;
  • buona documentazione con diversi esempi.

Difetti

  • pochi controlli in gestione server;
  • sfrutta la classe PEAR Service_JSON, ottima ma purtroppo lenta per mole di dati consistenti:
  • utilizzo esclusivamente procedurale;
  • peso del codice client affatto contenuto.

Giudizio

Buona nell'insieme e se l'esigenza è quella di poter fare tanto senza preoccuparsi di niente o senza avere skill elevate potrebbe essere uno dei framework più idonei.

Descrizione

Probabilmente il vecchio Cajax è stato abbandonato non appena gli sviluppatori di CakePHP lo hanno integrato migliorandolo. CakePHP è sicuramente tra i framework più robusti, potenti e ben fatti di questa panoramica. Una vera e propria API, un sito ricco di esempi, documentazione ed interessanti extra rendono CakePHP completo e probabilmente il più indicato per applicativi medio avanzati.

Impressioni

Un gigante dalle mille facce e potenzialità. CakePHP teme ben pochi rivali sia tra i framework Ajax oriented che tra quelli di sviluppo
MVC per il solo PHP. Indubbiamente poco consigliato per interazioni semplici e forse non il più indicato per gli sviluppatori meno preparati. Uno sguardo e qualche test non potranno di certo far male ma l'insieme richiede studio ed un pò di esperienza.

Pregi

  • ricco di funzionalità;
  • molto potente, adatto per lo sviluppo medio avanzato;
  • ottima documentazione ed ottima comunità.

Difetti

  • richiede una installazione dedicata ed almeno una media preparazione sia client che server;
  • utilizzo non immediato;
  • prestazioni non troppo elevate.

Giudizio

Ottimo framework di sviluppo completo e molto potente ma sconsigliabile per chi è a digiuno di programmazione ad oggetti o vorrebbe semplificare le operazioni più comuni per una interazione asincrona. Sicuramente un punto di riferimento per tutti coloro che cercano un
RDF
per il linguaggio PHP.

Descrizione

Un piccolo framework utile per semplificare o implementare lo scambio dati asincrono.

Impressioni

Dopo una prima occhiata perplessa al sito di riferimento, uno sguardo al codice ha confermato l'impressione iniziale. Una sintassi tutta sua per il parsing delle parti utili, un codice ridondante e duplicato sul client come sul server, una miriade di file con classi basate per lo più sull'uso di variabili globali. Insomma, giudizio negativo su tutti i fronti.

Pregi

  • dicono sia semplice;

Difetti

  • sintassi dedicata e di prolissa implementazione;
  • nessuna possibilità di integrazione su sistemi o template predisposti per uno scambio dati asincrono;
  • utilizzo ad oggetti basato per la maggiore su variabili globali;
  • sperpero di file e risorse;
  • lento e poco sicuro su configurazioni non molto aggiornate.

Giudizio

Tra i peggiori della lista.

Descrizione

Robusto, semplice e veloce, queste le caratteristiche di questo framework in grado di effettuare chiamate asincrone con risposta di tipo testuale, JSON o XML.

Impressioni

Confermato il semplice, parzialmente il veloce, dubbioso il robusto. La troppa semplicità spesso implica anche troppo poco controllo ed il fatto che pesi più la libreria JavaScript (26 Kb) che il file server dedicato a gestire il tutto (1.8 Kb) non lascia troppo spazio a dubbi sull'affidabilità della libreria.

Pregi

  • semplice e cross browser;
  • compatibile con PHP versione 4 e 5;
  • invia e riceve dati semplici e complessi grazie a JSON.

Difetti

  • troppa attenzione per il buon codice client, non contenuto, e troppo poca per il codice server;
  • lento se non si ha la PECL per fare encode e decode di variabili JSON (è basato infatti sulla lenta classe Pear)
  • poco sicuro, di default abilita chiunque ad includere un qualunque file php partendo dalla root del sito.

Giudizio

Discreto nel suo insieme ma richiede troppa attenzione sulle opzioni di configurazione. è un peccato che il tutto sia gestito quasi per intero dalle opzioni della classe client poichè il server fa veramente troppo poco per tentare di tutelare da attacchi maliziosi. Una stringa appesa ed ecco che si può creare una classe, anche la classe stessa in ricorsione. Sicuramente da studiare per capirne il funzionamento ma da non adottare come soluzione per applicativi esposti a chiunque, tipo i nostri siti web.

Descrizione

Un package Pear robusto e affidabile non troppo complicato quanto ben fatto.

Impressioni

Quando la pera adotta una soluzione si scremano spesso in automatico alcuni dubbi: ottima documentazione, ottimo codice, ottime potenzialità. Tra la miriade di classi Pear questa è quella dedicata per lo scambio dati asincrono. XML, JSON, testo attraverso l'uso di classi prontamente registrate e tenute sotto controllo.

Pregi

  • parte di Pear, sinonimo di qualità con ottimo debug e manutenzione più che efficiente;
  • compatibile con PHP versione 4 e 5
  • capacità di scambio dati semplici o complessi tramite JSON o XML;
  • package robusto e molto affidabile;

Difetti

  • pesante per server non al top;
  • non molto semplice da implementare;

Giudizio

Ottimo, seppur non sia un vero e proprio framework. Questo package Pear è sicuramente tra i più indicati per implementare scambio dati di un certo livello. Non è consigliabile per semplici interazioni ma i pregi lo rendono un must per tutte i tipi di interazione.

Descrizione

Il prefisso nano non serve ad indicare il "microsforzo" fatto dallo sviluppatore bensì a descrivere il basso carico di banda richiesta durante le interazioni. Basato su JSON, questo framework di recente concezione è capace di effettuare scambio dati asincrono sicuro e controllato minuziosamente in ogni sua parte.

Impressioni

Il codice server, come quello client, sembra molto buono, scritto sicuramente da uno sviluppatore preparato che aveva in mente soprattutto due cose: potenza e controllo. I tipi di dato inviabili vanno oltre la semplice notation JavaScript poichè è possibile indicare dati di tipo tinyint, alphanumeric e tanto altro ancora. Lo sviluppo orientato interamente ad oggetti, sia server che client, lo rendono tra i meno adatti per i principianti ma tra i più apprezzabili per gli sviluppatori senior.

Pregi

  • controllo al limite del paranoico;
  • invio di variabili semplici e complesse, grazie a JSON;
  • potenzialità e sicurezza ai massimi livelli;
  • interamente Object Oriented.

Difetti

  • non velocissimo, sfrutta la classe JSON di Pear;
  • solo per PHP 5;
  • solo per sviluppatori avanzati.

Giudizio

Per tutto ma non per tutti, adatto quindi per applicativi di ogni tipo ma inadatto per chi non ha supporto per PHP 5 o non programma ad oggetti. Eccellente per gli sviluppatori senior più attenti alla sicurezza e al controllo sul tipo dei dati.

Descrizione

Un completo framework compatibile con il solo PHP 5. Interamente basato su classi PHP, non richiede la conoscenza di JavaScript. Rientra nella categoria dei Code Generators.

Impressioni

La struttura molto articolata lascia un pò perplessi inzialmente ma ci si accorge subito di quanto sia possibile creare con questo framework più che completo ed adatto anche a chi non ha molta familiarità col JavaScript. Ottima la progettazione e la documentazione, facile l'implementazione. Il dubbio iniziale svanisce rapidamente non appena si apre un qualunque file: ben scritto ed altrettanto bene documentato.

Pregi

  • estremamente completo;
  • ideale per lo sviluppo
    RAD
    ;
  • potenzialità e sicurezza ai massimi livelli;
  • interamente Object Oriented.

Difetti

  • pesante per server non al top;
  • solo per PHP 5;
  • codice client buono ma non contenuto (50 Kb o più).

Giudizio

Ottimo per l'insieme di classi e per la semplicità di sviluppo per chi ha anche poca conoscenza della programmazione ad oggetti in PHP5. Una valida alternativa a CakePHP, da tenere quindi sicuramente in considerazione.

Descrizione

Un framework a 360° sprecato per creare un "banale" suggest, basato interamente ad oggetti e completo in ogni sua parte Stratos è la soluzione più orientata allo sviluppo di applicativi enterprise.

Impressioni

Il primo esempio di utilizzo e creazione di un applicativo spiega come realizzare un intero forum. Approfondendo le potenzialità si scopre che il "motore client" non è altro che Dojo, uno dei più potenti toolkit di sviluppo JavaScript attualmente in circolazione. Le potenzialità sono quindi impressionanti e la qualità del codice è ai vertici della classifica, l'uso di un sistema di caching, di un layer di astrazione e le possibilità di configurazione portano questo framework un palmo sopra la concorrenza.

Pregi

  • massime potenzialità, adatto per lo sviluppo di applicativi enterprire o esrtemamente complessi;
  • sicurezza e controllo ai vertici della classifica;
  • ottime prestazioni nonostante la consistente mole di file utilizzati;
  • ottima la compatibilità client e server ed altrettanto ottima la documentazione.

Difetti

  • troppo pesante lato client (300 Kb ed oltre).

Giudizio

Probabilmente eccessivo per un'alta percentuale di applicativi on-line ma non per questo da scartare. Un framework degno di nota per tutte le caratteristiche e su un server in grado di sfruttare sistemi di accelerazione codice, grazie anche al sistema di caching integrato, potrebbe essere in grado di competere con piattaforme di ogni tipo. Eccellente.

Descrizione

Un framework completo, facile da usare ma molto potente. Symfony è probabilmente uno dei più noti di questa lista ed oltre ad essere ricco di documentazione ha una comunità di sviluppatori molto vasta.

Impressioni

Lo stile Web 2.0 del sito cattura subito l'attenzione e le pagine ricche di esempi mostrano come sia effettivamente facile creare applicativi semplici, medi o complessi. La voce enterprise ready tra le features rassicura ulteriormente sul fatto che questo progetto sia tanto versatile quanto consistente. L'utilizzo del framework Script.aculo.us come engine client rende l'insieme adatto alla creazione di applicativi sicuramente al passo con i tempi.

Pregi

  • ottima applicazione MVC;
  • robusto e di veloce implementazione;
  • debug estremamente semplificato per un controllo eccellente;
  • permette di creare effetti accattivanti senza conoscere JavaScript grazie al framework client di tutto rispetto.

Difetti

  • poca portabilità, solo PHP 5;
  • codice client non contenuto (Prototype, script.aculo.us ed altre librerie ancora).

Giudizio

Uno dei framework con il miglior rapporto tra la qualità e la semplicità di sviluppo, adatto a tutte le esigenze, dalle semplici alle più complicate. Utilizzato anche dal servizio Yahoo! Bookmarks questo framework non teme rivali. Il massimo con il minimo sforzo, probabilmente il vincitore di questa panoramica, peccato richieda il supporto per PHP 5 e si basi su un insieme di librerie client non proprio leggerissime.

Descrizione

Uno dei primi, uno dei più semplici, Xajax è adatto per i meno esperti come per i più abili ed è capace di offrire tanto senza troppo sforzo. Utilizzabile con PHP 4 e 5 e compatibile con la maggior parte dei browser, ha forse l'unico neo nell'essere ancora troppo legato al procedurale.

Impressioni

Buona la documentazione, migliorati gli aspetti di debug ed il buon codice client è abbastanza contenuto. Senza dubbio vale la pena di provarlo perché come utilizzo è tra i più immediati. Troppo legata forse la parte server da quella client, un'implementazione MVC mal riuscita sotto certi aspetti.

Pregi

  • utilizzo semplice ed immediato;
  • buone prestazioni:
  • ottime opzioni per il debug.

Difetti

  • ancora troppo procedurale;
  • implementazione facile ma troppo legata tra server e client.

Giudizio

Un buon framework adatto a risolvere in modo semplice ed indolore una buona fetta di problematiche asincrone. Tentare non costa niente e difficilmente si avranno problemi di utilizzo.

Descrizione

Un altro vecchio ma valido framework, uno dei primi basato sul protocollo JSON oggi rinnovato con un sistema di caching ed una gestione eventi semplice quanto interessante.

Impressioni

Il wiki è in tedesco e questo non va a favore di questo framework in grado di trasferire dati tramite una serializzazione tutta personale. JSON non è infatti il vero protocollo di scambio dati ed il fatto che lo sviluppatore abbia scelto di serializzare a modo suo in modo pseudo compatibile con le funzioni serialize ed unserialize di PHP può portare a pensare che forse le prestazioni e l'affidabilità della libreria non saranno ai massimi livelli.

Pregi

  • semplice ed immediato ma altrettanto potente;
  • ottimo controllo ed ottime le possibilità di debug;
  • ottima gestione eventi;
  • versione per PHP 4 e dedicata "strict" per il 5.

Difetti

  • prestazioni deludenti, sia client che server;
  • basato su un serializzatore personale non performante e poco affidabile.

Giudizio

C'è tanto per inesperti come per veri guru. XOAD è un framework che spazia tra l'entry level e l'enterprise ma viene tagliato fuori da quest'ultimo a causa delle prestazioni non eccezionali. Buono, ma ha rivali sicuramente più validi.

Descrizione

Porting del framework AjaxTag sviluppato per JSP. Un utilizzo basato su array associativi con coppie chiavi/valori in grado di creare in pochi passaggi porzioni di pagine più che accattivanti.

Impressioni

Scorrendo la pagina si potranno non notare gli esempi: multitabs, suggest e tanto altro. Se le promesse sono vere questo porting elimina il problema del codice agli sviluppatori JSP ed anche a quelli PHP, avendo un'API praticamente identica alla stessa del progetto originale e richiedendo una conoscenza del JavaScript pressoché nulla.

Pregi

  • derivato di una libreria JSP, solitamente ben progettate;
  • semplicità imbarazzante per una resa ottima.

Difetti

  • codice client troppo pesante (Prototype più libreria dedicata, circa 80Kb)
  • codice server molto discutibile;
  • non è compatibile con PHP 5;
  • non ha una buona gestione eventi ne client ne server, non filtra richieste multiple né le evita;
  • poche possibilità di espansione e non troppo sicuro sul server.

Giudizio

L'intento è buono ma il risultato tecnico, oltre quello visibile, lascia un pò di amaro in bocca. Ideale per chi ha un sito poco visitato e senza dati sensibili o esigenze di scambio dati particolari. Appena sufficiente nell'insieme, il solo script.aculo.us avrebbe potuto far di più mentre la scelta di Prototype e di una libreria personale poco ottimizzata lasciano questo semi framework nei bassifondi della classifica.

Descrizione

Un ambiente di sviluppo potente e completo basato sul template engine PHPTAL e sul toolkit Dojo per il client.

Impressioni

Mastodontico, 4 mega di download solo per tentare di utilizzarlo. La demo page del sito risulta infatti non raggiungibile, la documentazione è abbastanza scarna e l'unico aspetto certo è che tutto è basato ad oggetti. Astrazione di Ajax oltre l'immaginabile, dicono gli sviluppatori, di certo con una libreria client che nell'insieme sfiora i 400Kb le caratteristiche non potevano essere diverse. Dalla creazione di interi documenti, XML e non, alla gestione di portali basati su template engine, Guava sembra essere orientato più alle intranet che al Web.

Pregi

  • interamente basato su classi ed oggetti;
  • adatto a progetti di tipo enterprise;
  • astrazione server e client e gestione eventi ai vertici della classifica;
  • basato su un sistema di template engine ed un framework client di tutto rispetto.

Difetti

  • pesantissimo lato server, poco adatto a server virtuali;
  • improponibile lato client se non all'interno di una rete;
  • solo per PHP 5;
  • deludente il sito e poca la documentazione.

Giudizio

Difficile dare un giudizio negativo se non altro per l'insieme di file utilizzati e per le effettive potenzialità dell'intero sistema. Un gigante da scartare per un'altissima percentuale di applicativi web, un framework da considerare per progetti intranet di alto livello. Un valido rivale per Stratos, probabilmente anche più articolato ma sicuramente meno ben presentato.

Descrizione

Leggero, facile, basato su JSON, PAJAX è un piccolo framework dalle poche pretese ma dalle ottime caratteristiche.

Impressioni

Una descrizione dell'idea, un paio di esempi... Poche le informazioni reperibili sul sito. Una volta scaricato e letto i sorgenti ci si accorge di come il tutto sia mosso in modo poco convincente dal file Pajax.class.php. Il file addetto al parsing della querystring richiama un metodo che non fa altro che togliere qualche carattere dalla stringa ed includere le classi e l'impressione è che non ci siano sufficienti controlli in termini di sicurezza e che non è quindi ancora il momento di definirlo un progetto maturo.

Pregi

  • semplice ed immediato;
  • leggero sul client ed abbastanza veloce sul server;
  • scambio dati semplici o complessi tramite JSON.

Difetti

  • la classe JSON è una versione ridotta e riscritta della solita Pear, ha il vantaggio di essere più performante ma solo perchè richiede l'utilizo di mb_string che se non presente non farà far molto alla libreria;
  • poco curato il codice server;
  • progetto non ancora maturo.

Giudizio

Un vero peccato per l'implementazione non troppo curata, un'ottima idea invece la concezione del framework. Un insieme di file adatti per diversi esperimenti, da tenere d'occhio per gli eventuali sviluppi e perchè no, da provare ma con cautela.

Descrizione

Semplice, adattabile a diversi modi di sviluppo, gestito da eventi guidati, un buon design del codice in produzione e per finire object oriented. Questa la presentazione ufficiale del sito, queste le caratteristiche interessanti del suddetto framework.

Impressioni

Il sito sembra ottimo, esempi documentati, codice ed altro in grado di presentare al meglio questo framework. Non è richiesta la conoscenza di JavaScript, utile per chi volesse concentrarsi solo sullo sviluppo server senza preoccuparsi di altro, altro che viene gestito senza problemi e con ottime potenzialità dal framework script.aculo.us e da altri file dedicati alla gestione pilotata dei vari componenti client.

Pregi

  • piuttosto veloce e interamente basato ad oggetti;
  • ottime potenzialità per applicativi di ogni tipo;
  • scambio dati semplici o complessi tramite JSON;
  • non richiede la conoscenza di JavaScript.

Difetti

  • non troppo lineare, diverse modalità di sviluppo;
  • la libreria client è potente e ben fatta ma non è sempre leggera, si basa su script.aculo.us;
  • solo per PHP 5.

Giudizio

Ottimo framework dalle tante potenzialità consigliabile soprattutto per chi non ha dimestichezza col JavaScript. Poco altro da aggiungere se non di fare una visita nel sito in grado di mostrare molti esempi utili e ben documentati.

Descrizione

Tra i più leggeri in assoluto, questo framework si basa sulla possibilità di scrivere funzioni in modo procedurale e di sfruttare le stesse tramite un paio di chiamate.

Impressioni

La semplicità che sfiora l'eccessivo, tre file in tutto per un framework dal codice sia client sia server molto leggero. Ben pensato e ben strutturato il tutto ma manca ancora troppo per inserire di fatto questa piccola libreria in questa panoramica. Buona la compatibilità client e server.

Pregi

  • leggerissimo e di facile implementazione;
  • veloce sia sul client che sul server.

Difetti

  • le variabili non vengono codificate in alcun modo, charset e dati complessi sono tagliati fuori se non tramite appositi stratagemmi non presenti di default;
  • manca praticamente tutto, dal debug alle possibilità di estensione;
  • codice client molto leggero ma altrettanto limitato;
  • codice server troppo essenziale, quasi superfluo date le caratteristiche.

Giudizio

Il nome Flexible sembra quasi una presa in giro poiché, sebbene sia vero che questa piccola lib è riadattabile per qualunque esigenza, è altrettanto vero che chiunque la usi si ritroverà a scrivere tre quarti delle operazioni o delle funzioni sia client che server. Insomma sembra fatta per inesperti ma nelle loro mani non sarà in grado di fare molto. E le troppe linee di codice per mostrare una calcolatrice capace di fare una sola addizione ne sono l'esempio lampante, bocciata.

Descrizione

Ajax è troppo complicato? Questa la domanda posta in cima al sito di presentazione. E la risposta verrebbe quasi spontanea: NO. Qualcuno però vorrebbe trovare un modo semplice di implementare chiamate asincrone, parsare form, inviare più varibili e riceverne altrettante... Ecco che TinyAjax potrebbe essere la risposta.

Impressioni

Tiny forse è il termine adatto, perché le operazioni sono poche e non serve tanto codice né sul server né sul client. Lo sviluppo è totalmente legato però tra queste due parti al punto da richiedere l'assegnazione degli id usati nel client direttamente sul server. Uno sguardo al JavaScript utilizzato ed ecco che spunta fuori un modo alquanto discutibile di fare encode e decode delle variabili... sostituendo caratteri speciali come se fossero "mostri" da scansare. Esistono funzioni apposite sia client che server e fortunatamente a parte Tiny gli altri framework lo sanno.

Pregi

  • leggero e semplice;
  • compatibile con PHP 4 e 5;
  • sviluppo procedurale o ad oggetti.

Difetti

  • le stringhe sono a rischio, la codifica è inventata e inefficace;
  • troppo legata la progettazione server a quella client;
  • il codice JavaScript aumenta spaventosamente all'aumentare delle funzioni, la calcolatrice più completa pesa oltre i 30Kb.

Giudizio

Probabilmente la più adatta per fare test "abc" ma tra le meno consigliabili per fare interazioni asincrone. Sebbene l'idea che sta dietro a questa libreria sia ottima, la sua concretizzazione fa un pò acqua sotto troppi aspetti. Pessima la conversione delle stringhe. Buona libreria, nell'insieme, per lo studio o per iniziare, discutibilissima come scelta oltre la sola calcolatrice.

Descrizione

Potente, robusto e completo, dopo una parata di tiny, little, small, flexible... ecco finalmente che si ritorna a parlare di un vero e proprio framework. Uno dei pochi basati su HMVC, questo framework racchiude le potenzialità di Smarty per il tamplate engine e quelle di Prototype, o altre, per la gestione client.

Impressioni

Eccellente progetto, ancora purtroppo troppo giovane. La stabilità non è del tutto garantita ma le promesse sono fantastiche. Semplicità ed elasticità sono la chiave per questo framework adatto per ogni tipo di utilizzo tranne l'enterprise, almeno finché non sarà dichiarato del tutto stabile.

Pregi

  • leggero ed abbastanza veloce;
  • interamente ad oggetti;
  • codice ottimo, come ottimo è l'utilizzo delle nuove feature di PHP 5;
  • adatto ad ogni tipo di esigenza, asincrona e non.

Difetti

  • non ancora del tutto stabile;
  • solo per PHP 5 e per sviluppatori con conoscenze medio-alte;
  • utilizza una libreria non molto leggera lato client e non è ancora orientato al meglio per lo sviluppo di applicativi asincroni.

Giudizio

Uno dei progetti più interessanti di questa lista. Si spera venga aggiornato e mantenuto quanto prima per arrivare ad una versione considerata stabile. L'uso di Smarty garantisce semplicità ed affidabilità per lo sviluppo di template mentre le classi astratte, le interfacce e tutte le novità del PHP 5 lasciano presumere un'ottima preparazione degli sviluppatori che non a caso hanno tentato di riprodurre in PHP un modello avanzato degli sviluppatori Java.

Descrizione

Un altro framework completo, potente ed orientato agli sviluppatori PHP5. Zephyr ha la caratteristica di essere tra i più estendibli grazie ad il supporto ed alla possibilità di integrazione con librerie tipo CPAINT, ezComponents o PEAR il tutto basato su MVC.

Impressioni

Sicuramente buone le prime impressioni. Basato anche questo su Smarty per il template e su Prototype di default per il client, il framework sembra essenziale ma realizzato con tutti gli accorgimenti del caso. Si lavora per lo più su interfacce e su classi estese e si ha molta libertà di utilizzo. La API non è enorme ma completa, il codice è ben indentato e documentato in ogni sua parte. Non punta molto sul poco codice per il tanto risultato quanto sul buon codice per un ottimo risultato. Peccato aver trovato qualche variabile globale all'interno di alcuni file. Una necessità poco giustificata su un sistema come questo.

Pregi

  • leggero, veloce, potente e versatile;
  • ottimo utilizzo delle nuove features di PHP 5;
  • ottime potenzialità di sviluppo, adatto a siti di ogni tipo con e senza Ajax;
  • layer di astrazione database molto valido.

Difetti

  • solo per PHP 5;
  • non immediato per l'utilizzo;
  • più idoneo, nella versione ufficiale, per siti gestiti dal solo server che per siti ricchi di interazioni asincrone.

Giudizio

Positivo, per la documentazione, per gli obiettivi del framework e per le potenzialità di espansione. Un valido rivale per Claw, un ottimo prodotto per sviluppatori di ogni livello capace però di soddisfare a pieno anche i più preparati.

Descrizione

Funzionalità Ajax sofisticate in pochissime linee di codice... niente di più vero!

Impressioni

Un'altra delusione in ambito "simple", dove inevitabilmente la volontà di rendere semplice un qualcosa di già abbastanza semplice diventa un misto di procedurale, classe mal concepita, pessimo codice client scritto per intero dal server e poco altro ancora, dato che poco è quello che offre la libreria ed altrettanto poche sono le potenzialità.

Pregi

  • simple;

Difetti

  • codifica inesistente, il primo esempio converte le variabili separandole modificando una stringa tipo "zzz" ed aggiungendo una & ...
  • codice pessimo sia client che server;
  • documentazione quasi inesistente;
  • quel poco che c'è non è ottimizzato per le migliori prestazioni;
  • potenzialità limitatissime, lo sviluppatore deve fare praticamente tutto, tanto vale imparare direttamente a scambiare i dati in modo più consono.

Giudizio

Una versione mal riuscita della libreria client AHAH, probabilmente la più semplice e tra le più leggere in circolazione in grado di fare molto meglio quello che questo non framework vorrebbe goffamente replicare.

Descrizione

Sviluppo ad oggetti, estendibilità e compatibilità multipla client/server fanno tutte parte di questo progetto.

Impressioni

Sebbene il sito di presentazione risulti un po' caotico, sebbene i due siti di esempio realizzati con questo framework starebbero bene nel museo delle bad Ajax practices, il progetto sembra essere interessante. Database di riferimento? MySQL, ma è possibile implementarne qualunque altro grazie alla classe astratta in grado di gestire connessioni e query. Il tutto è puntato soprattutto sullo sviluppo asincrono. I risultati non sono immediati ma i buoni propositi ci sono tutti.

Pregi

  • compatibile con PHP 4 e PHP 5;
  • sviluppo orientato agli oggetti;
  • sfrutta un motore di tamplate facile ed intuitivo;
  • rivolto soprattutto per lo sviluppo di applicativi asincroni.

Difetti

  • codice client e server non proprio pulito, ordinato o ottimizzato;
  • sviluppo del framework a metà tra classi e funzioni e tra PHP 4 e 5;
  • libreria client non molto contenuta, circa 50Kb tra tutto e senza features degne di particolare nota.

Giudizio

A metà tra i framework facili e quelli più potenti, in mezzo alla classifica ma non per semplicità e potenzialità. Da attenderne ancora un pò per vedere se le prossime versioni saranno migliorate nel codice, nell'efficienza e nella linearità di sviluppo del core.

Descrizione

Un framework o un vero e proprio IDE? Nuvolo sembra essere un modo rivoluzionario per sviluppare applicativi. Basato su un applicativo Java permette di creare applicativi in modo semplice ed intuitivo.

Impressioni

Che cosa è? Come funziona? A chi è rivolto? Queste domande trovano risposta navigando nel sito, vedendo gli esempi e testando la demo, dove non si avrà un framework da installare ma un vero e proprio applicativo on-line da testare. La sensazione di avere a che fare con un extra terrestre passa in fretta non appena si entra nella demo online, dove errori di ogni tipo sembrano essere all'ordine del click e dove la pesantezza della pagina, oltrei 210 Kb tra tutto, giustifica a pieno quanto mostrato nella stessa. Per utilizzare il sistema è necessario avere un account, cosa non semplice da fare o probabilmente a pagamento. Non c'è download, non c'è modo di provare il file Java (senza account)... Se bisogna basare tutto sulla demo o sull'esempio mostrato dallo stesso sito dove al primo click l'avviso di errore compare inesorabile perfino sul browser IE... beh, non si avrà certo una buona impressione.

Pregi

  • innovativo;
  • rivoluzionario;
  • per tutti e per qualunque PC provvisto di Internet.

Difetti

  • impossibile analizzarne a pieno le potenzialità;
  • dubbia utilità per chi vuole avere controllo in prima persona su quanto sta sviluppando (ad esempio uno sviluppatore...);
  • probabilmente a pagamento ma da una prima analisi comunque "non perfetto"

Giudizio

è quasi impossibile dare un giudizio su questo sistema. Resta dubbio questo framework, sempre che si possa definire come tale.

Descrizione

Si presenta in prima persona come framework Ajax e PHP ma non richiede alcuna conoscenza del JavaScript. Un framework di altissimo livello gestito completamente lato server e con un occhio di riguardo per la leggerezza del codice client generato automaticamente.

Impressioni

Il fatto che il sito presenti subito esempi e compari il framework con altri più o meno noti dà l'impressione di avere a che fare con un gruppo di sviluppatori che non teme confronti. In effetti il lavoro svolto sembra eccellente per un framework leggero, facile da usare, potente e basato sulla classe PEAR per lo scambio dati in JSON e su Smarty per la gestione del template. Il codice client sviluppato su misura da un tocco in più di professionalità a questo sistema.

Pregi

  • ottima implementazione MVC;
  • non richiede alcuna conoscenza del JavaScript;
  • il codice client è pensato per essere il più leggero possibile nonostante le caratteristiche avanzate;
  • controllo totale lato server e scambio dati asincrono semplice o avanzato tramite JSON.

Difetti

  • solo per PHP 5;
  • sfrutta la classe Pear, prestazioni non ai massimi livelli sul server.

Giudizio

Ottimo candidato per il podio della lista, rivolto ai soli sviluppatori PHP che non hanno tempo da perdere dietro l'implementazione di librerie JavaScript più o meno complete. Potenzialità ai massimi livelli ed un client finalmente di dimensioni contenute aggiungono un più al voto già alto meritato a pieno da questo framework.

Descrizione

Un altro veterano dell'interazione asincrona, tra i primi e tra i più noti nonché tra i più crossplatform. Linguaggi server differenti ed ottima compatibilità client rendono questo semplice framework tra i più versatili della categoria.

Impressioni

Il sito è scarno, lo stesso da anni, ma per quello che serve è più che sufficiente. Esempi semplici o articolati sono ben documentati e la spiegazione da poche righe rende l'idea di semplcità, punto di forza sul quale ruota questa libreria. è di una piccola libreria infatti che si parla, definirlo framework è forse eccessivo sebbene le potenzialità non siano in alcuni caso da meno.

Pregi

  • semplicissimo da utilizzare ed implementare;
  • una versione per tutti, PHP 4 o 5, Python, Ruby, Perl, Coldfusion ed altri ancora;
  • codice client ben fatto e molto leggero;
  • leggerissimo da gestire anche sul server, adatto a tutti gli host.

Difetti

  • potenzialità limitate;
  • completamente procedurale;
  • non sfrutta JSON né serializzatori, poca affidabilità durante lo scambio dati
  • non è espandibile, in nessuna versione.

Giudizio

Se si cerca qualcosa di immediato, semplice ma buono per tanti tipi di interazione asincrona, è la libreria da considerare prima di ogni altra. Se si cerca un framework o un qualcosa di robusto, veloce ed affidabile, è da testare ma da non utilizzare se non dopo aver provato anche altri concorrenti.

Descrizione

Più che un framework una simulazione ben riuscita di un ambiente desktop. Cosa si potrà fare con le versioni ufficiali è ancora poco chiaro ma la ventata di novità introdotta da questo "ambiente" lascia sperare per il meglio.

Impressioni

Stupore immediato per la versione 1.0 ancora Release Candidate ma già capace di mostrarsi in tutto il suo splendore. Icone, finestre, interazioni asincrone, una vera novità ma ancora troppa perplessità. Le interazioni sono di tipo modale, un layer sopra l'ambiente blocca la possibilità di gestire simultaneamente più finestre. Il codice è per PHP 4, orientato agli oggetti ma scarsamente documentato e non ancora compatibile con le ultime release del linguaggio adottato. Il client? Apparentemente leggero ma il caricamento multiplo di tutti i file della libreria porta il peso complessivo attorno ai 130 Kb. Una cosa è certa, sebbene non ci sia ancora molto per trarre conclusioni la soluzione incuriosisce oltremodo, se non altro per vedere fino a dove lo sviluppatore oserà spingersi. La Desktop Application Web del futuro? Non si sa ancora, attendiamo fiduciosi.

Pregi

  • assolutamente unico nel suo genere;
  • ambiente innovativo;
  • buone prospettive, almeno per il futuro;
  • orientato agli oggetti.

Difetti

  • documentazione al limite dell'essenziale;
  • non ancora compatibile con le ultime versioni di PHP;
  • non chiare le potenzialità, attualmente appariscenti ma limitate;
  • gruppo di lavoro indefinito, non si sa se il progetto è attivo o fermo.

Giudizio

Singolare, strano, promettente ma attualmente inutilizzabile. Le tre versioni proposte sono distanti chilometri l'una dall'altra mentre le prospettive, gli sviluppi, le news o la documentazione in merito sembrano essere un fantasma. Presente solo, e poca, all'interno di alcuni file, nemmeno tutti. Come utilizzarlo? Come riadattarlo? Voto 4 per l'insieme, molto buono per l'originalità.

Descrizione

Uno degli ultimi framework basati su un singolo file contenente una classe estendibile. Object oriented e basato sulla libreria Prototype, questo singolo file sembra poter fare molto ma soprattutto permette a chiunque di utilizzare o estendere la classe senza dover conoscere niente di JavaScript.

Impressioni

Ancora nessun sito ufficiale se non quello di Sourceforge e molto scarna la documentazione. L'esempio è semplice ed i concetti abbastanza noti, si registrano eventi tramite un metodo bind, si scrive codice php dove necessario, si genera in automatico una pagina capace di effettuare tramite Prototype interazioni asincrone più o meno complesse.

Pregi

  • non richiede la conoscenza del JavaScript;
  • facile da usare e da implementare;
  • orientato agli oggetti.

Difetti

  • potenzialità limitate;
  • debug praticamente assente;
  • non leggerissima la libreria client, basata su Prototype;
  • non innovativo nonostante sia tra gli ultimi arrivati.

Giudizio

Con AjaxCore si ritorna a parlare di una piccola libreria più che di vero e proprio framework. Buono per aggiungere un po' di interazioni, dubbio per applicativi e progetti consistenti. Una libreria fatta per il suo creatore, capace sicuramente di trarne il meglio senza dare a nessuno un qualcosa di diverso o di rivoluzionario. Appena uscita quindi, ma già vista.

Conclusione

La lista probabilmente non è completa ma a grandi linee queste sono tutte le tipologie di framework attualmente disponibili per sviluppare applicativi Ajax con PHP 4 o 5. Impossibile stilare una vera e propria classifica poiché a seconda delle capacità dello sviluppatore, delle sue reali esigenze o di quelle del progetto in esame, ognuno potrebbe essere più o meno indicato, salvo le rare eccezioni che ci hanno deluso del tutto.

Ti consigliamo anche