aTal, template engine per PHP
Lunedì 5 Settembre 2011 - 09:37
di Alessandro Nadalin

Considerando cosa offre il panorama dei template engine per PHP moderni, ci troveremmo d’accordo nell’eleggere Twig come next big thing di questo mercato.
In effetti, grazie all’hype generato dall’accoppiamento - non necessario, sia ben chiaro - con Symfony2, Twig si è ritagliato grossa considerazione in pochi mesi di vita stabile.
Forse non tutti conoscono, invece, un progetto molto giovane, aTal, di cui possiamo apprezzare pragmaticità e completezza.
Permette di scrivere template in XML reale, avvantaggiandosi poi dell’utilizzo di espressioni di controllo come attributo di un tag ( notevole risparmio di caratteri ), incorpora costrutti per gestire sia l’inclusione che l’ereditarietà e non manca di modificatori, ovvero i “filtri” di Twig; completamente ad oggetti, supporta inoltre le ultime caratteristiche introdotte con PHP 5.3.
Secondo me, questo giovane progetto, peraltro italiano, ha tutti i numeri per poter essere un forte competitor nel panorama dei template engine per PHP: voi cosa ne dite?
Categoria: PHP e Open Source | Permalink
Commenti
1
Io ho iniziato da poco un piccolo progetto in php e all’inizio volevo usare CakePhp ma alla fine stare dietro a tutte le convenzioni e regole ho perso tantissimo tempo. Alla fine ho deciso di fare tutto da zero e vado come un treno, quindi alla fine a meno che non bisogna lavorare a progetti mastodontici io sconsiglio vivamente di perdere tempo dietro ai framework
# - postato da Marco Bruni - 05 Settembre 2011 - 09:52
2
Caro Marco, non sto qui a ripetere per la millesima volta perché usare un framework sia oggettivamente meglio che sviluppare tutto da zero, comunque contento tu contenti tutti.
3
Che ti devo dire sarà che io sono uno sviluppatore vecchia maniera ma così vado come un treno e senza perdere tempo ad impararmi l’ennesimo framework.
PS.: sò benissimo a cosa serve un framework infatti ho parlato di piccoli progetti
# - postato da Marco Bruni - 05 Settembre 2011 - 10:13
4
@Marco Bruni nella mia esperienza non ho mai avuto un piccolo progetto che sia rimasto tale: la prima volta ho fatto come te ed ho avuto grossi problemi nell’evoluzione dell’applicazione, da lì in poi ho perso tempo per STUDIARE (non leggere i tutorials) i frameworks che secondo me più si adattavano al problema corrente da risolvere.
# - postato da markux - 05 Settembre 2011 - 10:22
5
@markux Mi fai degli esempi concreti di che tipologie di progetti e che framework hai usato?
Così vedo se posso paragonare il mio
# - postato da Marco Bruni - 05 Settembre 2011 - 10:31
6
@Marco Bruni
progetti di qualsiasi tipo: siti semplici che piano piano diventano una community (wordpress), ad applicazioni SSO che poi diventano pannelli di gestione di sistemi (seagullphp), semplici servizi webservices che diventano gateway e gestionali di sistema (yii), portali di ricerca in continua evoluzione di nuove feature (yii), per non parlare delle applicazioni batch command line per la procedure notturne oppure per creare mini server per richieste di protocolli 3M o Voip (spring/yii/CGI::Application)
7
La sintassi mi sembra pesante. Personalmente preferisco Twig con una sintassi semplice e leggera molto simile a quella dei template Django.
# - postato da Paolo Ferretti - 05 Settembre 2011 - 10:52
8
Io sto facendo un gestionale classico clienti, utenti, prodotti etc.. con possibilità di modificare, creare, eliminare record (CRUD). Pensavo che CakePhp mi poteva tornare utile ma veramente l’ho trovato troppo contorto e non mi va di perdere tempo a rincorrere le convenzioni. Tu invece cosa mi consigli yii?
# - postato da Marco Bruni - 05 Settembre 2011 - 10:53
9
Il framework migliore secondo me alla fine rimane sempre quello Zend. Abbastanza semplice iniziare a svilupparci e ti permette di fare praticamente qualsiasi cosa.
# - postato da Aurelio De Rosa - 05 Settembre 2011 - 10:58
10
La scelta su cosa utilizzare dipende molto dall’obiettivo che vuoi raggiungere: qualità, prezzo, funzionalità ecc. .
Poi per i gestionali la cosa più importante è la progettazione dello schema del database. Una volta fatto questo in modo ragionato con Yii, Symfony o altri framework che hanno la generazione automatica del codice e lo sforzo maggiore risiede nell’adattare quel codice alle tue esigenze.
Per i tuoi obiettivi potrebbe bastare anche dadabik.org
Personalmente sono “innamorato” di due framework: yii per php e spring per java.
11
dadabik.org un altro framework? Ma è una giungla, mi spiace ma rimango della mia idea, comunque grazie dei consigli.
e di CakePHP cosa ne pensate?
@Aurelio De Rosa ma Zend è a pagamento?
# - postato da Marco Bruni - 05 Settembre 2011 - 11:16
12
praticamente è qualcosa molto simile a PHPTAL (http://phptal.org/) che è l’implementazione di TAL del progetto ZOPE
# - postato da ndo - 05 Settembre 2011 - 11:17
13
@ndo non ho capito a cosa ti riferisci
# - postato da Marco Bruni - 05 Settembre 2011 - 11:22
14
@Marco Bruni
La quasi totalità dei framework è progettata seguendo dei principi di ingegneria del software universalmente riconosciuti, con architetture software molto simili tra loro: è nei dettagli o nello startup del framework dove normalmente ci sono le differenze maggiori, ma se hai delle conoscenze sui pattern e sulla progettazione software te la dovresti cavare con qualche giorno di studio .. che non è sicuramente tempo perso, almeno per la mia esperienza ;)
# - postato da Marco Lecce - 05 Settembre 2011 - 11:26
15
@Marco Bruni
Zend Framework non è a pagamento, è open source!
# - postato da Marco Lecce - 05 Settembre 2011 - 11:28
16
Per me si, sono state perdite di tempo con CakePHP e non ne sono uscito fuori e ripeto ho perso parecchi giorni. Invece facendolo da zero vado come un treno. @Marco Lecce mi fai anche tu degli esempi concreti nel tuoi sviluppo di progetti e che framework hai usato?
# - postato da Marco Bruni - 05 Settembre 2011 - 11:29
17
@Marco Bruni
Certo: ultimamente ho utilizzato Zend Framework per l’implementazione di una piattaforma ecommerce, per un gestionale documentale e per un piccolo CMS.
Nei progetti più semplici, come ad esempio il CMS, quello che ha fatto davvero la differenza in realtà è stato il framework javascript che abbiamo utilizzato per l’implementazione delle viste : ExtJs.
Questo ci ha permesso di risparmiare un sacco di tempo nella creazione delle interfacce mettendo su in poco tempo delle RIA davvero interessanti.
In generale comunque è il progetto che sceglie la tecnologia, nel senso che dall’analisi e dalla progettazione dovrebbe venir fuori lo “strumento tecnologico” che meglio si sposa con le caratteristiche del progetto.
In generale comunque penso che qualsiasi framework tu possa scegliere è meglio di una piattaforma sviluppata da una sola persona….chiunque essa sia! ;)
# - postato da Marco Lecce - 05 Settembre 2011 - 11:39
18
@Marco Lecce in cosa differisce Zend Framework da CakePHP?
# - postato da Marco Bruni - 05 Settembre 2011 - 11:41
19
@Marco Bruni
Come tutte le novità all’inizio non è semplice, non bastano pochi giorni…ma una volta imparato a sviluppare con un buon framework non si torna più indietro.
Mi è capitato di riprendere in mano un vecchio progetto che avevo sviluppato in straight Php ed è stato un trauma.
Il miglior framework php non esiste, dipende da te che tipo di lavori devi fare. Personalmente mi trovo benissimo con Kohana.# - postato da Ste - 05 Settembre 2011 - 11:41
20
@ste invece per CakePHP è stato un trauma che difficilmente ripeterò, ripeto mi sentivo intrappolato dalle convenzioni e perdevo tempo. Forse proverò Zend ma ho poco tempo
# - postato da Marco Bruni - 05 Settembre 2011 - 12:01
21
@Marco Bruni
In rete trovi un sacco di comparazioni: alcune risorse interessanti che puoi vedere per farti un’idea sono ad esempio questa o anche questa.
Dal punto di vista dell’architettura entrambi si basano sul paradigma architetturale MVC, hanno gli strumenti per gestire lo sviluppo guidato dai test e lo startup dell’applicazione è abbastanza semplice.
A mio modo di vedere ZF risulta forse più flessibile, modulare e facilmente estendibile.
Come spunto per successivi ragionamenti trovo molto interessante questo articolo, perchè divide il processo di valutazione di un framework su 5 punti fondamentali da tenere presente quando si prendono questo tipo di decisioni.
# - postato da Marco Lecce - 05 Settembre 2011 - 12:07
22
Riguardo a Zend io devo fare il tutto su Aruba e siccome ho un piano di hosting normale non posso utilizzarlo perchè non posso utilizzare la linea di comando, quindi per adesso va benissimo php, js e html puro da zero ;-)
# - postato da Marco Bruni - 05 Settembre 2011 - 12:07
23
@Marco Bruni
mi riferisco all’oggetto dell’articolo ovvero il template engine aTal# - postato da ndo - 05 Settembre 2011 - 12:46
24
@nadalin se ci segnalate tutti i progetti che escono su github non ne usciamo vivi.
quando presentate un framework o una libreria specifica, quando già da anni esistono alternative funzionanti, per cortesia ponete l’accento nel segnalare le diversità, peculiarità, design tredeoff della soluzione nuova, altrimenti perché mai dovremmo andare a provare uno strumento che non da benefici ulteriori rispetto alle soluzioni che già adottano tutti? grazie, buon lavoro# - postato da devsmt - 05 Settembre 2011 - 13:25
25
capisco bene se dico che questo particolare template engine è fatto apposta per funzionare bene con dreamweaver?
capisco che dreamweaver non faccia figo come la bella messe di acronimi impiegati, ma almeno quello può interessare a qualcuno…
se non lo dite esplicitamente non si capisce proprio perché è stato speso tempo a reinventare ruote rodate funzionanti e impiegate in progettoni diffusi
# - postato da devsmt - 05 Settembre 2011 - 13:38
26
ciao @devsmt,
non credo tu capisca lo spirito di edit, se credi di trovarci benchmark approfonditi.
Qui vengono proposti spunti per i lettori e, se leggi bene l’articoli, trovi anche il perche’ aTal sia stato citato, citandone le differenze rispetto a, per esempio, Twig, probabilmente lo stato dell’arte dei TE per PHP.
# - postato da Alessandro Nadalin - 05 Settembre 2011 - 13:56
27
Una cosa che ritengo fondamentale per la scelta di un framework è la documentazione e la community che si porta dietro!!
# - postato da sonik - 05 Settembre 2011 - 14:10
28
@nadalin non credo tu capisca bene lo spirito dei lettori di edit se credi si voglia/possa provare un progetto perché fa tutto quello che fa l’altro progetto, quello che già usiamo, quello con documentazione e comunity.
ti prego di non insultarmi dandomi del analfabeta: non è insultando i tui lettori che fai bene il tuo compito di divulgatore, se ti dico che dal articolo non si capisce quale sia il vantaggio ad usare questa soluzione non sono i tuoi lettori ignoranti, ma l’articolo non abbastanza chiaro. come vedi dal “entusiasmo” degli altri commenti la confusione regna sovrana.non voglio essere ingiustamente critico con te, ma è davvero importante se vuoi fare un servizio ai lettori e al impegno dello sviluppatore, che chiarisci ed esemplifichi i plus, anche modesti e relativi, della soluzione proposta che tu hai evidentemente capito, beato te.
altrimenti stiamo perdendo tempo tutti, altro che “spunti”, parola che non può essere un paravento per articoli di qualità e utilità modesta.ti prego di accettare il feedback costruttivo e non personale quale vuole essere, di un lettore affezionato e di lunga data.
ciao, grazie
# - postato da devsmt - 05 Settembre 2011 - 15:23
29
ciao @devsmt,
lungi dal darti dell’analfabeta (non capisco come tu possa essere giunto a tale conclusione), ti ri-chiedo di dare una letta all’articolo: ti viene proposto un TE completamente ad oggetti, in PHP5.3, che supporta l’ereditarieta’ ed i filtri (non ricordo se supporta pure i traits/mixin che Twig simula): ecco, un engine cosi’ completo al momento non sembra esistere, aTal, Smarty, Twig che si chiami in causa.
# - postato da Alessandro Nadalin - 05 Settembre 2011 - 15:38
30
@Marco Bruni
Forse hai affrontato in modo non efficace il primo approccio ai framework php.
Se ti sentivi intrappolato dalle convenzioni è probabile che ti stesse sfuggendo il PERCHE’ quelle convenzioni esistono. Se studi almeno un 30% del sorgente di un framework oop capisci che è un ottimo modo per scriver codice:
- Sicuro
- Manutenibile
- Riutilizzabile
- PulitoPer dirti, ora dici che stai scrivendo un sito:
- Se pubblicassi tutto il codice, ti sentiresti al sicuro da eventuali attacchi?
- Se ti chiedessi di introdurre un modulo per le ACL, andresti ad usare meno del 10% che hai usato per costruire l’intero sito?
- Se ti chiedessi di fare un nuovo progetto, simile al 50% come funzionalità, potresti usare più dell’80% del codice che hai già scritto senza ritoccarlo?
- Sei sicuro di non aver mai usate il Copia-Incolla?Queste sono 4 domande di esempio, io uso Zend+Doctrine e faccio ampio uso dei Design-Pattern (anche imparati grazie allo studio di questi sorgenti), e mi sento sicuro nel rispondere Sì a tutte e quattro, e tu?
Ps: Zend non ha bisogno della linea di comando
# - postato da Slam - 05 Settembre 2011 - 19:00
31
@Marco Bruni
Uso CakePhp da tre anni e recentemente ho sviluppato anche con Codeigniter.
Ti garantisco che il tuo ‘treno’ verrà bellamente surclassato dal ’siluro’ CakePhp una volta che ti sentirai padrone di pilotarlo.
Inoltre avrai guadagnato tutti i bonus descritti ottimamente da @Slam
aggiungo:
Se veramente credi nel tuo lavoro sai molto bene che non puoi proseguire la tua vita lavorativa sulle tue convinzioni, occorre una costante ricerca e studio delle nuove tendenze. Questo non è certamente ’seguire la moda del momento’ ma tenersi aggiornato e competitivo in un mercato che è tanto stimolante quanto complesso. Inoltre - cito ora @Marco Lecce - questi maledetti framework ’sono progettati seguendo dei principi di ingegneria del software universalmente riconosciuti’ quindi sono EFFICACI prima di ogni altra cosa.
Sta a te decidere se vuoi diventare un professionista migliore oppure no.
Chiudo con un consiglio: Non studiare un framework per un progetto imminente, studialo la sera, fai dei test, avvia un progetto personale molto semplice e quando ti senti pronto implementalo in un progetto che ti viene commissionato.
32
Chiudo con una mia idea: le guerre tra framework sono per poveretti :)
33
@ndo A-Tal dichiaratamente prende spunto da PHPTAL, solo che ne supera alcune fastidiose limitazioni, grazie ad una maggiore flessibilità.
@devsmt Penso che le peculiarità di A-Tal siano state ben introdotte da Nadalin; metterei in grassetto “risparmio di caratteri”, dato che, credetemi, i TE TAL-alike riescono ad essere parecchio conservativi. Con relativo risparmio di tempo.
@altri Perdonatemi, non voglio assolutamente sembrare polemico, ma qui si parla di un Template Engine, perciò non riesco a capire come possa essersi scatenata una guerra di religione FW si/ FW no… ;-)
34
@nadalin
la pagina ufficiale (giovane ed in costruzione):
aTal PHP Template Engine# - postato da Asmir - 06 Settembre 2011 - 14:24
35
Ma qui si parla di Template o come sembra nei commenti di Framework?
Io come framework ho tempo fa usato CodeIgniter e mi sono trovato abbastanza bene grazie sopratutto alla buona documentazione.
Come template conosco Smarty.# - postato da cristian76 - 06 Settembre 2011 - 21:35







