Questo articolo fa parte di una serie dedicata alla comparazione di Framework PHP.
Akelos è un framework PHP basato sul pattern MVC. Si tratta in realtà di un porting di Ruby on Rails in PHP, cosa che lo rende particolarmente indicato per chi già sviluppa in RoR e vuole utilizzare su PHP gli stessi strumenti. L'ultima versione disponibile, del dicembre 2009, è la 1.0.1. Da allora il progetto, che sembra fermo, ha ricevuto solo piccoli ritocchi e aggiornamenti.
Nella homepage gli stessi autori tengono a sottolineare che il framework permette di sviluppare interfacce Ajax, controllare richieste e risposte attraverso un controller, gestire applicazioni multilingua e comunicare con in database attraverso semplici connessioni.
Installazione
Nella homepage del framework si parla di applicazioni in Php 4/5. Andando invece nella pagina del download si legge chiaramente che Akelos è stato realizzato per le versioni 5 del Php. Dopo aver scaricato la versione più adatta alle nostre esigenze ci si rende conto che, a differenza degli altri framework analizzati, Akelos non si installa con un clic. La nostra avventura con Akelos non comincia nel migliore dei modi.
Pattern MVC
Come accennato nel paragrafo precedente, anche Akelos fa uso del pattern MVC. Anche in questo caso abbiamo le solite tre cartelle che si trovano comunemente sotto la cartella
app. La nomenclatura dei vari elementi del pattern MVC si basa sul nome della tabella del database su cui si intende lavorare.
Per quanto riguarda il controller questi estende, nella versione più semplice, la classe ApplicationController
. In esso ovviamente sono definite tutte le azioni che si devono compiere sotto forma di metodi. Nella documentazione ufficiale non è presente alcun riferimento alla possibilità di organizzare i controller all'interno di sottocartelle.
La prima cosa anomala, riferendoci sempre agli altri framework analizzati, è che le viste sono dei file di tipo tpl. In essi infatti si utilizza codice SinTag, definita dall'autore come un piccolo insieme di regole che aiuta a scrivere vista pulite. Ora, senza scendere troppo nel dettaglio di questo template, mi chiedo perché mai dovrei, nel tentativo di fare rapidamente un'applicazione, imparare oltre al framework anche questa sintassi? Personalmente preferisco ancora passare le variabili alle viste!
L'ultima parte del MVC è rappresentato dal model che, in questo caso, è un'istanza di Active Record. Appare evidente che semplicemente definendo un model, si abbia la possibilità di effettuare le operazioni CRUD sul database. Da segnalare invece che, per riferirsi ad un model all'interno di un controller, è sufficiente passare il nome del model all'array $models
del controller. Sempre sfruttando questa sorta di "variabili" di configurazioni è possibile indicare al model la relazione che questi ha con altre tabelle.
Database e validazione
Come già accennato nel paragrafo precedente, il model in Akelos è una sottoclasse di Active Record. Spulciando un po' nella pessima guida presente online, ci si rende conto che sono presenti tutti i metodi più comuni per l'iterazione con una tabella del database. Oltre ai classici metodi
find
, sono quindi presenti anche i metodi update
,
save
e molti altri. Quello che non sono riuscito ad individuare è un banale metodo per eseguire una query scritta da me. All'interno di Active Record è disponibile anche la validazione. Inutile dire che anche qui la documentazione lascia a desiderare.
Supporto e guide
Come potete notare, per Akelos mancano molti paragrafi della nostra serie
dedicata ai framework. Non dipende solo dal fatto che Akelos sembri oramai un progetto fermo, ma anche dal fatto che, in un articolo che mira ad aiutare l'utente nella scelta di un framework, non ha senso parlare di cose che si deducono dall'utilizzo dello stesso. Arrivando sulle pagine di Akelos, ho avuto la tentazione di lasciarle subito poiché non mi ha permesso di capire le sue potenzialità.