Abilitare estensioni aggiuntive per Twig

Twig è il template engine integrato in Symfony2. Nella Standard Edition oltre al core di Twig è presente anche il repository delle estensioni. Le funzionalità di queste estensioni non sono disponibili automaticamente, è richiesto all’utente di attivarle manualmente, vediamo come.Il repository ufficiale delle estensioni di twig ne contiene, al momento, 4:

  • Debug
  • I18n
  • Intl
  • Text

Per default questo viene clonato all’interno della dir “vendor/twig-extensions”, potete identificare facilmente la posizione dei sorgenti tramite il file di autoload (app/autoload.php).

Abilitare una di queste estensioni richiede semplicemente di taggare il servizio corrispondente con il tag twig.extension tramite la configurazione del DIC.

Volendo ad esempio abilitare l’estensione Text (Twig_Extensions_Extension_Text) sarà sufficiente aggiungere al file config.yml, all’interno del blocco “services”, queste righe:

twig.extension.text:
        class: Twig_Extensions_Extension_Text
        tags:
            - { name: twig.extension }

A questo punto le funzionalità dell’estensione sono disponibili all’interno dei nostri template.

Delle 4 estensioni disponibili Debug è l’unica che merita una nota particolare, almeno per quanto riguarda l’installazione. Questa estensione infatti, anche se abilitata, si attiva solamente se twig è in modalità debug. In configurazione predefinita lo stato di debug di twig viene ereditato dall’ environment di Symfony, questo significa che avrete a disposizione informazioni di debug solamente utilizzando l’environment dev.

Ovviamente tramite file di configurazione siete liberi di attivare o disattivare il debug di twig per ogni ambiente, aggiungendo o modificando la chiave “debug” all’intero del blocco twig in config.yml.

Per i dettagli di funzionamento delle singole estensioni vi rimando alle relative documentazioni.  Anche in questo caso però debug merita una piccola nota rispetto alle altre. Attivando il debug su un intero template infatti twig cercherà di fare un var_dump di tutte le variabili presenti. Questo vuol dire, senza xdebug attivo, che è molto probabile che il rendering vada in timeout o in memory_limit. Una buona pratica è quella di attivare il debug solo per le variabili che volete veramente ispezionare.

Queste estensioni non aggiungono funzionalità incredibili a twig, ma offrono comunque delle utility interessanti. In particolare ho trovato utili Text e Debug, ma credo che in futuro guadagneremo altre estensioni che andranno a fare da complemento al già ottimo template engine.

Nel caso aveste qualche buona idea per un’estensione non dimenticatevi di mandare la vostra pull request.

Leave a Reply

Your email address will not be published. Required fields are marked *