Divide et impera

di Gianni Tomasicchio - 18 gennaio 2009

In principio c’era lo spaghetti code, poi vennero i template engine ed infine i framework MVC. Si potrebbe riassumere così l’evoluzione delle tecniche di separazione tra HTML e PHP. Divide et impera dicevano i latini. Questa separazione è di vitale importanza per garantire facilità di manutenzione, divisione delle competenze e semplificare la struttura degli script.

Se programmate in PHP e quanto appena detto vi risulta nuovo allora fareste bene a correre ai ripari. Si perché uno script PHP che contiene sia l’HTML che costituisce la grafica, sia il codice che ne determina il funzionamento, è destinato ad avere vita breve. E quanti se ne vedono in giro!

I template engine sono delle librerie che permettono di separare il codice PHP dall’HTML necessario alla creazione delle pagine web in modo che questi due elementi possano risiedere su file distinti: script PHP da un lato e template HTML dall’altro. Attraverso le funzioni messe a disposizione dal template engine, lo script PHP potrà richiamare il template HTML desiderato, passandogli eventualmente dati e parametri necessari alla corretta visualizzazione. Qui potete trovare un elenco di soluzioni disponibili per PHP.

Fatta eccezione per piccolissimi script PHP, nei quali si può raggiungere lo stesso risultato utilizzando gli include(), ritengo che l’utilizzo di un template engine sia obbligatorio.  A meno che non si stia già utilizzando un framework MVC.

Infatti questi framework sono collezioni di librerie che, ciascuno con le proprie peculiarità, assolvono alla separazione tra i template HTML detti viste (la V di MVC) ed il resto del codice PHP (la M e la C di MVC, ovvero il codice di accesso ai dati e di controllo del flusso del programma).

Per dovere di cronaca segnalo la possibilità di utilizzare contemporaneamente un framework MVC ed un template engine, ad esempio per sfruttare funzionalità avanzate di quest’ultimo assenti nel framework. E’ il caso ad esempio dello Zend Framework e di Smarty.

1 commento

1 Roberto Roberto domenica 18 gennaio 2009, ore 21:23
Penso proprio che sperimenterò il framework Zend. Grazie del suggerimento. A presto.
Effettua l'accesso o registrati per inserire un commento