logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builder❗

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

❗Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

Scorri

Individuazione e verifica delle variabili nei template Twig

03/10/2025, by Ivan

Menu

Quando si lavora con un file di template Twig, la maggior parte delle variabili è documentata nei commenti del file stesso. Tuttavia, quando non è così, o quando temi o moduli introducono nuove variabili, abbiamo bisogno di un modo per individuare tutte le variabili disponibili all’interno del template. Twig fornisce la funzione dump() per rilevare e controllare le variabili nei file di template.

La funzione dump() non mostrerà alcun output se il debug non è abilitato. Scopri come abilitare il debug di Twig.

Dopo aver abilitato il debug, la funzione dump() può essere utilizzata per stampare le informazioni su una o più variabili all’interno del template.

Controllare una singola variabile

Se nel tuo template esiste una variabile title, il seguente codice stamperà il suo contenuto nel template:

{{ dump(title) }}

Individuare tutte le variabili disponibili nel template

Per stampare tutte le variabili disponibili e i loro valori nel template, aggiungi quanto segue (dopo aver abilitato il debug):

{{ dump() }}

Per stampare solo le chiavi delle variabili disponibili, utilizza:

{{ dump(_context|keys) }}

In tutti i template Twig sono disponibili ulteriori variabili globali:

  • _self si riferisce al template corrente e contiene informazioni dettagliate sul template, come il nome della classe del template compilato e le informazioni sull’ambiente Twig. _self è deprecata ed è stata rimossa in Twig versione 2.x.
  • _context si riferisce al contesto corrente e contiene tutte le variabili passate al template, come variabili inviate da theme(), preparate nel preprocess o definite nel template. L’aggiunta di {{ dump() }} senza specificare una variabile è equivalente a {{ dump(_context) }}.
  • _charset si riferisce al set di caratteri attuale.

Attenzione con dump()

Se vuoi vedere tutte le variabili ma dump() provoca esaurimento di memoria a causa di ricorsione o simili, puoi iterare _context per vedere tutte le chiavi in esso contenute:

    {% for key, value in _context %}
  1. {{ key }}
  2. {% endfor %}

Poi puoi usare un controllo condizionale (ad esempio {% if loop.index == 2 %}) e stampare solo quel valore quando necessario.

Ulteriori informazioni

Consulta la documentazione della funzione dump di Twig per saperne di più.

Debug con xdebug

Il metodo di debug più raccomandato è utilizzare una IDE con plugin per Xdebug.

La configurazione più semplice è usare PHPStorm (commerciale) con Xdebug. Microsoft VSCode è un’IDE gratuita e open source con plugin che permettono di fare la stessa cosa, senza richiedere l’acquisto di software commerciale.

L’utilizzo di Xdebug ti consente di seguire il flusso di esecuzione, ispezionare il contenuto delle variabili e farlo in un modo che elimina le incognite interne, evitando cicli infiniti che possono verificarsi con dump o kint.

Un piccolo ma utile modulo chiamato twig_xdebug può aiutare a visualizzare le variabili disponibili in Xdebug.

Debug con kint

La funzione dump() in Twig spesso stampa molto testo sulla pagina web, rendendo difficile trovare le informazioni utili.

Un’alternativa a dump() è kint, uno strumento di debug per PHP. La funzione kint() funziona esattamente come dump() ma fornisce un’interfaccia espandibile e navigabile per le variabili stampate.

Il progetto Devel fornisce il modulo devel kint, che consente agli sviluppatori di utilizzare kint() al posto di dump().

1. Scarica il modulo Devel.
2. Installa il modulo “devel kint”.
3. Come per la funzione dump, kint() non mostrerà alcun output se il debug non è abilitato. Scopri come abilitare il debug di Twig.
4. Nei tuoi file .twig usa kint() per controllare le variabili, come descritto per dump().
5. Se necessario, scarica e installa il modulo Search Kint per cercare tra le variabili annidate.

Metodo e classe whitelist policy

Quando lavoriamo con oggetti, mettiamo in whitelist la chiamata di un insieme specifico di metodi getter e setter o oggetti tramite la classe TwigSandboxPolicy. Questo serve a prevenire l’esecuzione di metodi indesiderati nei template. Ad esempio: {{ node.delete }} su un oggetto nodo potrebbe eliminare il nodo se non ci fosse una whitelist. Puoi estendere questa whitelist aggiungendo nel tuo file settings.php quanto segue:

$settings['twig_sandbox_whitelisted_methods'] = [
  'id',
  'label',
  'bundle',
  'get',
  '__toString',
  'toString',
  'referencedEntities',
];

Dove 'referencedEntities' è il metodo che vuoi utilizzare nel tuo template.