Det har blitt skrevet mye om fremtiden for WordPress, og mange tror at det mangler et templerende språk, spesielt når plattformer som Django, Ruby on Rails, Node.js, Laravel og til og med Drupal har en. Fakta som "WordPress krever nesten 25% av nettet " gjør det vanskelig å stille spørsmål til det nåværende PHP-baserte templeringssystemet. Men da modulariteten i kode fortsatt mangler, kan man spørre når kjernen vil ha en templerende motor.
Den gode nyheten er her! Twig-templeringsmotoren sammen med et plugin som heter Timber, kan hjelpe oss med å skrive superreng og modulær kode i WordPress. I denne serien diskuterer vi implementering og integrasjon med WordPress. Jeg vil begynne med det grunnleggende om hva Twig er og hvorfor du trenger det, og i de neste tre artiklene vil jeg forklare forskjellige typer Twig-maler integrert med WordPress via Timber.
Twig er en fleksibel, rask og sikker templerende motor til PHP. Twig er hentet til deg av Fabien Potencier, skaperen av Symfony-rammen, og regnes som funksjonell, omfattende, rask og effektiv.
Vanligvis når du kodes i WordPress, blander du biter av PHP med HTML (det er det vi kaller spaghetti kode). Dette tilskrives ikke som super-ren merking. For en modulær og Doing it Right ™ tilnærming må man beholde Utsikt
skille fra Data
. Med Twig kan du skille utsikt lag fra resten av programmet. Twig fungerer på modell-view-controller (MVC) mønster og det hjelper å opprettholde ren kode.
Gjennom årene har forskjellige PHP-templerende motorer blitt utviklet, men Twig overgår sikkert alle dem i følgende kapasiteter.
Twig er en av de mest funksjonelle og kraftige PHP-templerende motorer. Den støtter flere arv og automatisk utgang, og det hjelper å dele malen i flere blokker eller komponenter for å opprettholde en modulær design. Ikke bare dette, men utviklere kan også legge til flere plugins for å møte eventuelle krav til front-end.
Maler som er kompilert via Twig, bære mye mindre overhead sammenlignet med vanlig PHP-mal. Kodingsrutinene blir høyt optimerte, og du får til å spare mye av din utviklingstid. Det er også nyttig når du planlegger å endre basisrammen, siden Twig hjelper til med å skape et eget templeringslag som kan kobles til alle back-end-rammer, det være seg Laravel eller WordPress.
Twig passer til kravene til både designere og utviklere. Selv om du ikke er en kode nerd, er det enkelt å bruke Twig, og det føles riktig å kode en modulær mal basert på komponenter. Syntaxen er lett å forstå og avstår fra å implementere dynamiske PHP-operasjoner i malfiler. Alt i alt er det ganske moderne og kan tilpasses med alle de nyeste kodingsstandardene. Output escape-konseptet er svært omfattende når det håndteres med Twig.
La oss starte med et enkelt eksempel.
I vanlig PHP får du en utgang slik:
I Twig blir ting mye enklere, det vil si at koden ovenfor blir komprimert til:
foo foo | escape foo | e # snarvei for å unnslippe en variabel #
Output escape er like enkelt i Twig. Bare legg til doble brace parentes, skriv inn navnet på variabelen, og du får en utgang. Sett et rør med en e ved siden av det, og vi har begynt å rømme ting. Mer om dette i de neste tre artiklene i denne serien.
Twig sanitizes og sikrer dataene alene. Det er eksklusivt sandkasse modus overvåker intelligent hele koden og filtrerer de beste resultatene. Dette betyr at brukergenererte maler kan implementeres enkelt og sikkert. Sandkassen miljøet kan bare aktiveres globalt eller lokalt for spesifikke maler som dette:
include ('post.html', sandboxed = true)
I tilfelle av en syntaksfeil debugger Twig filen ved å generere en melding som inneholder detaljene som filnavnet og linjenummeret med den problematiske koden.
Jeg har nettopp nevnt at Twig er en moderne templerende motor, som også betyr at du kan forlenge funksjonaliteten, siden den er ganske fleksibel. Den støtter fullt ut en effektiv lexer og parser gjennom hvilke utviklere kan definere egendefinerte koder, filtre, funksjoner osv.
Bortsett fra alle de ovennevnte funksjonene, er Twig meget godt dokumentert og fullstendig testet. API- og templerende biblioteker er fullt stabile og kan håndtere alle slags komplekse oppgaver. En dedikert online bok og fullstendig API dokumentasjon er også tilgjengelig.
Twig fungerer som det nye malingsspråket for Drupal 8, som er min store motivasjon bak med å bruke denne templerende motoren med tillit. De gode folkene på XWP, spesielt Weston Ruter, jobber med et forslag om å gjøre Twig i samsvar med WordPress.com VIP-standarder.
Hittil har hele diskusjonen spilt rundt to ting. Først bør vi bruke en modulær tilnærming til å holde maler skilt fra data mens du bygger egendefinerte WordPress-temaer, og for det andre kan Twig hjelpe oss med å gjøre det. Men hva bringer disse to sammen?
Ulike anstrengelser har blitt gjort for å oppnå det aller beste av integrasjoner mellom Twig og WordPress, og et slikt modig forsøk er Timber, opprettet av et webbyråk med navnet Upstatement. Den bruker Twig-templeringsmotoren, som gjør det mulig å skrive modulær og ren kode i WordPress.
Tømmer sammen med Twig kan hjelpe deg med å bygge raske og modulære WordPress-temaer. På denne måten kan du beholde HTML-koden din fra de vanlige PHP-filene, noe som sikrer et mer bærekraftig kodemønster. Konseptet med å holde HTML og PHP separat gjør det mulig for PHP-filen å fokusere strengt på å levere data
og logikk mens HTML-filen (Twig-filen) konsentrerer seg om utsikt
lag av webapplikasjonen.
I det hele tatt utfører Timber tre hovedoppgaver:
Jeg tror deres misjonserklæring sier alt:
Timber er et verktøy for utviklere som ønsker å oversette deres HTML til høyverdige WordPress-temaer gjennom et intuitivt, konsistent og fullt tilgjengelig grensesnitt.
I tilfelle av et vanlig WordPress-tema, blir alle fragmentene av PHP og HTML-koden integrert og endret i samme PHP-malfiler. Men med Timber deler vi malfiler i to forskjellige datafiler: PHP-filen, og visnings- / malfilen, det vil si Twig-filen.
Så, den første er lagret med filtypen .php
og den andre har .kvist
som forlengelse. Derfor, hvis du oppretter malfiler for single.php
, filene dine vil bli navngitt single.php
og single.twig
.
Den tidligere filen samler dataene, mens sistnevnte er malen som bruker dataene i HTML. På denne måten kan du legge til dynamiske operasjoner i WordPress-temaene på en modulær måte.
La oss oppsummere alt:
Timber håndterer WordPress-temaets malfiler i PHP og HTML (Twig) -filer. På denne måten skiller du logikken fra skjermen. Det gir deg nye måter å bygge, stil og vise temaet på.
Det er mye å elske om Twig. Denne artikkelen var bare en introduksjon om fordelene ved å bruke en templerende motor med WordPress. Modulær kode er bedre kode og er lett å vedlikeholde. Det er på tide for utviklere å ta dette arbeidsflytskiftet, og jeg er sikker på at Twig kan hjelpe dem med det.
I de kommende artiklene viser jeg den praktiske implementeringen av malfilene med Twig. Vi vil se på hvordan vi kan implementere Twig for å gjengi WP-bilder, kommentarer og meny, med kodeeksempler. Inntil da hvis du finner noen spørsmål, kan du spørre. Ikke glem å nå ut på Twitter.