I template engine per PHP sono utili?

Non si tratta di una domanda retorica: troverai non pochi sviluppatori PHP che sconsigliano l’uso dei template engine, perché già PHP è essenzialmente un motore di template.

La questione è molto dibattuta tra i programmatori, tra chi sostiene che il consumo di risorse e le limitazioni dei template engine siano eccessivi, e chi invece li trova d’aiuto.

Se usare o meno un template engine PHP è una scelta tua, che dipende anche dai requisiti e dai vincoli del progetto su cui devi lavorare.

Ma se devi usarlo, assicurati di usarne uno dei migliori: vediamo quali sono!

Twig

Motore di template Twig

Uno tra i principali linguaggi di template per PHP, Twig utilizza una sintassi simile ai linguaggi di template Django e Jinja. 

Twig compila i template in semplice codice PHP. La sintassi è facile da imparare ed è stata ottimizzata per consentire ai web designer di svolgere il proprio lavoro velocemente. L’overhead rispetto al normale codice PHP è stato ridotto al minimo, in modo da ottimizzarne la velocità. 

Twig è molto flessibile, e supporta tutto ciò che serve per costruire template potenti con facilità: ereditarietà multipla, blocchi, output-escaping automatico e molto altro. Inoltre grazie alla modalità Sandbox, Twig si rivela un motore di template sicuro da implementare.

https://github.com/twigphp/Twig

Smarty

PHP template engine Smarty

Uno dei motori di template per PHP più diffusi, Smarty facilita la separazione della presentazione (HTML/CSS) dalla logica dell’applicazione.

Smarty gestisce la compilazione dei template come script PHP. In questo modo si ottengono i vantaggi della sintassi dei template e della velocità del PHP, e allo stesso tempo il programmatore deve solo modificare i template Smarty, senza preoccuparsi della loro compilazione. Questo approccio rende i template facili da mantenere e mantiene i tempi di esecuzione estremamente veloci.

https://www.smarty.net/

Plates

Logo del mootre di template Plates

Come racconta la sua pagina github, Plates è un sistema di template PHP nativo, veloce, facile da usare e da estendere. Si ispira a Twig e cerca di portare le funzionalità dei moderni linguaggi di template ai template PHP nativi.

Plates è stato progettato per gli sviluppatori che preferiscono usare template PHP nativi piuttosto che linguaggi di template compilati, come Twig o Smarty. Sostanzialmente incoraggia l’uso delle funzioni PHP esistenti, evitando che sia necessario imparare una nuova sintassi.

https://github.com/thephpleague/plates

➤ Interessato alla programmazione PHP? Scopri i migliori framework PHP tra microframework e framework fullstack

Blade

Blade è il motore di template di Laravel, framework PHP. S tratta di un motore di template  semplice ma potente, caratterizzato dal fatto che non limita l’uso di semplice codice PHP nelle view. Infatti, Blade non aggiunge overhead all’applicazione: tutte le view di Blade sono compilate in PHP e memorizzate nella cache finché non vengono modificate.

Il problema di Blade è che non viene supportato ufficialmente come pacchetto esterno al framework Laravel. Si trova quindi disponibile in diversi implementazioni open source, ma non ufficiali:

https://github.com/jenssegers/blade

https://github.com/EFTEC/BladeOne

Volt

Volt è un linguaggio di template per PHP, scritto in C e integrato in Phalcon. A differenza di Blade, è comunque supportato come pacchetto stand-alone completamente indipendente dagli altri componenti del framework. Volt fornisce una serie di helper per scrivere view in modo semplice: come Twig si ispira a Jinja. Per questo Volt presenta una sintassi famigliare agli sviluppatori che hanno già usato altri motori di template simili.

https://docs.phalcon.io/3.4/en/volt.html

Altri nomi di rilievo nel panorama dei PHP template engines sono LatteMustache, Foil, SavantPHP.