Molto è stato scritto sul futuro di WordPress e molti credono che manchi di un linguaggio di template, specialmente quando piattaforme come Django, Ruby on Rails, Node.js, Laravel e persino Drupal ne possiedono una. Fatti come "WordPress alimenta quasi il 25% del web " rendere difficile mettere in discussione il suo attuale sistema di template basato su PHP. Ma poiché la modularità nel codice manca ancora, si può chiedere quando il core avrà un motore di template.
La buona notizia è proprio qui! Il motore di Twig Templating insieme a un plugin chiamato Timber può aiutarci a scrivere codice superpulito e modulare in WordPress. In questa serie, discuteremo la sua implementazione e integrazione con WordPress. Inizierò con le basi di ciò che Twig è e perché ne hai bisogno, e nei prossimi tre articoli, spiegherò diversi tipi di modelli Twig integrati con WordPress via Timber.
Twig è un motore di template flessibile, veloce e sicuro per PHP. Twig è stato creato da Fabien Potencier, il creatore del framework Symfony, ed è considerato ricco di funzionalità, ampio, rapido ed efficiente.
In genere, quando esegui il codice in WordPress, mischi blocchi di PHP con HTML (questo è ciò che chiamiamo codice spaghetti). Questo non è attribuito come markup super-pulito. Per il gusto di un approccio modulare e Doing Right ™, è necessario mantenere il vista
separato da Dati
. Con Twig puoi separare il vista strato dal resto dell'applicazione. Twig funziona sul modello model-view-controller (MVC) e aiuta a mantenere il codice pulito.
Nel corso degli anni, sono stati sviluppati diversi modelli di motori PHP, ma Twig di sicuro li supera tutti nelle seguenti capacità.
Twig è uno dei motori di template PHP più ricchi di funzionalità e potenti. Supporta l'ereditarietà multipla e l'escaping dell'output automatico e aiuta a dividere il modello in diversi blocchi o componenti per mantenere un design modulare. Non solo questo, ma gli sviluppatori possono anche aggiungere altri plugin per soddisfare i requisiti di front-end.
I modelli compilati tramite Twig hanno un sovraccarico molto inferiore rispetto ai normali modelli PHP. Le routine di codifica vengono altamente ottimizzate e puoi risparmiare molto tempo di sviluppo. È utile anche quando si pianifica di modificare il framework di base, poiché Twig consente di creare un layer di template separato che può essere collegato a qualsiasi framework di back-end, sia esso Laravel o WordPress.
Twig si adatta alle esigenze di designer e sviluppatori. Anche se non sei un nerd del codice, l'uso di Twig è semplice e sembra giusto codificare un modello modulare basato sui componenti. La sua sintassi è facile da comprendere e si astiene dall'implementazione di operazioni PHP dinamiche nei file modello. Tutto sommato, è abbastanza moderno e si adatta a tutti gli ultimi standard di codifica. Il concetto di escape dell'output è molto completo quando gestito con Twig.
Iniziamo con un semplice esempio.
Nel normale PHP ottieni un risultato come questo:
In Twig, le cose diventano molto più semplificate, cioè il codice precedente viene compresso in:
foo foo | escape foo | e # scorciatoia per uscire da una variabile #
L'escaping dell'output è così semplice in Twig. Basta aggiungere parentesi graffe doppie, inserire il nome della variabile e ottenere un risultato. Metti una pipa con una e accanto ad essa e abbiamo iniziato a scappare. Maggiori informazioni su questo nei prossimi tre articoli di questa serie.
Twig disinfetta e protegge i dati da solo. È esclusivo sandbox la modalità controlla in modo intelligente l'intero codice e filtra i migliori risultati possibili. Ciò significa che i modelli generati dall'utente possono essere implementati facilmente e in modo sicuro. L'ambiente sandbox può essere abilitato solo a livello globale o locale per modelli specifici come questo:
include ('post.html', sandboxed = true)
In caso di errori di sintassi, Twig esegue il debug del tuo file generando un messaggio che contiene i dettagli come il tuo nome file e il numero di riga con il codice problematico.
Ho appena detto che Twig è un moderno motore di template, il che significa anche che è possibile estenderne le funzionalità poiché è abbastanza flessibile. Supporta pienamente un efficiente lexer e parser attraverso il quale gli sviluppatori possono definire tag, filtri, funzioni, ecc.
Oltre a tutte le funzionalità sopra menzionate, Twig è molto ben documentato e completamente testato. Le librerie API e templating sono completamente stabili e possono gestire tutti i tipi di attività complesse. Sono inoltre disponibili un libro online dedicato e una documentazione completa dell'API.
Twig funge da nuovo linguaggio template per Drupal 8, che è la mia motivazione principale dietro l'utilizzo di questo motore di template con sicurezza. I bravi ragazzi di XWP, in particolare Weston Ruter, stanno lavorando a una proposta per rendere Twig conforme agli standard VIP di WordPress.com.
Finora l'intera discussione ha ruotato intorno a due cose. Innanzitutto, dovremmo impiegare un approccio modulare per tenere separati i modelli dai dati durante la creazione di temi WordPress personalizzati e, secondo, Twig può aiutarci a farlo. Ma cosa li unisce questi due?
Diversi sforzi sono stati fatti per ottenere il meglio delle integrazioni tra Twig e WordPress, e uno di questi coraggiosi tentativi è Timber, creato da un'agenzia web chiamata Upstatement. Utilizza il motore di Twig Templating, che consente di scrivere codice modulare e pulito in WordPress.
Il legname insieme a Twig può aiutarti a creare temi WordPress veloci e modulari. In questo modo puoi mantenere il tuo codice HTML separato dai normali file PHP, garantendo un modello di codice più sostenibile. Il concetto di tenere separati HTML e PHP rende possibile che il file PHP si concentri rigorosamente sulla fornitura dati
e logica mentre il file HTML (file Twig) si concentra su vista
livello dell'applicazione web.
Nel complesso, Timber svolge tre compiti principali:
Penso che la loro dichiarazione di missione dica tutto:
Il legname è uno strumento per gli sviluppatori che vogliono tradurre il loro HTML in temi WordPress di alta qualità attraverso un'interfaccia intuitiva, coerente e completamente accessibile.
Nel caso di un normale tema WordPress, tutti i frammenti del codice PHP e HTML sono integrati e modificati negli stessi file modello PHP. Tuttavia, con Timber, dividiamo i file modello in due file di dati diversi: il file PHP e il file di visualizzazione / modello, ovvero il file Twig.
Quindi, il primo viene salvato con l'estensione del file .php
e il secondo ha .ramoscello
come sua estensione. Pertanto, se stai creando file modello per single.php
, i tuoi file saranno nominati single.php
e single.twig
.
Il primo file raccoglie i dati, mentre il secondo è il modello che utilizza i dati in HTML. In questo modo è possibile aggiungere operazioni dinamiche nei temi di WordPress in modo modulare.
Riassumiamolo tutto:
Il legname gestisce i file del modello del tema WordPress in file PHP e HTML (Twig). In questo modo separerai la logica dal display. Ti fornisce nuovi modi per creare, creare e mostrare il tuo tema.
C'è molto da amare su Twig. Questo articolo è stato solo un'introduzione sui vantaggi dell'utilizzo di un motore di template con WordPress. Il codice modulare è un codice migliore ed è facilmente gestibile. È tempo che gli sviluppatori prendano questo flusso di lavoro e sono sicuro che Twig potrà aiutarli.
Nei prossimi articoli mostrerò l'implementazione pratica dei file modello con Twig. Analizzeremo come implementare Twig per il rendering di immagini, commenti e menu WP, con esempi di codice. Fino a quel momento, se trovi qualche domanda, non esitare a chiedere. Non dimenticare di contattare Twitter.