Er is veel geschreven over de toekomst van WordPress, en velen geloven dat het een sjablonerende taal mist, vooral wanneer platforms zoals Django, Ruby on Rails, Node.js, Laravel en zelfs Drupal er een bezitten. Feiten als "WordPress levert bijna 25% van het internet " het moeilijk maken om het huidige PHP-gebaseerde template-systeem ter discussie te stellen. Maar aangezien de modulariteit in de code nog steeds ontbreekt, kan men zich afvragen wanneer de kern een templerende engine heeft.
Het goede nieuws is hier! De twig-templerende engine samen met een plug-in genaamd Timber kan ons helpen om super schone en modulaire code te schrijven in WordPress. In deze serie bespreken we de implementatie en integratie met WordPress. Ik zal beginnen met de basis van wat Twig is en waarom je het nodig hebt, en in de volgende drie artikelen, zal ik uitleggen verschillende soorten Twig-sjablonen geïntegreerd met WordPress via Timber.
Twig is een flexibele, snelle en veilige sjablonengine voor PHP. Twig wordt u aangeboden door Fabien Potencier, de maker van het Symfony-framework, en wordt beschouwd als feature-rijk, uitgebreid, snel en efficiënt.
Over het algemeen, als je codeert in WordPress, mix je stukjes PHP met HTML (dat is wat we spaghetti-code noemen). Dit wordt niet toegeschreven als super-schone markup. In het belang van een modulaire en Doing it Right ™ -benadering, moet men de Uitzicht
scheiden van Gegevens
. Met Twig kunt u de uitzicht laag van de rest van de applicatie. Twig werkt op het MVC-patroon (model-view-controller) en helpt om schone code te behouden.
In de loop der jaren zijn er verschillende PHP-template-engines ontwikkeld, maar Twig overtreft ze zeker allemaal in de volgende capaciteiten.
Twig is een van de krachtigste en krachtigste PHP-template-engines. Het ondersteunt multiple inheritance en automatische output-escaping, en het helpt de template verdelen in verschillende blokken of componenten om een modulair ontwerp te behouden. Niet alleen dit, maar ontwikkelaars kunnen ook meer plug-ins toevoegen om aan alle front-endvereisten te voldoen.
Sjablonen die zijn gecompileerd via Twig bevatten veel minder overhead in vergelijking met gewone PHP-sjablonen. De codeerroutines worden sterk geoptimaliseerd en u kunt veel van uw ontwikkelingstijd besparen. Het is ook handig wanneer u van plan bent het basisraamwerk te wijzigen, omdat Twig helpt bij het maken van een afzonderlijke sjabloneringslaag die kan worden verbonden met elk back-end framework, of het Laravel of WordPress is.
Twig past bij de eisen van zowel ontwerpers als ontwikkelaars. Zelfs als je geen code-nerd bent, is het gebruik van Twig eenvoudig en het voelt goed om een modulair sjabloon te coderen op basis van componenten. De syntaxis ervan is gemakkelijk te begrijpen en onthoudt zich van het implementeren van dynamische PHP-bewerkingen in de sjabloonbestanden. Al met al is het redelijk modern en is het aanpasbaar aan de nieuwste coderingsstandaarden. Het uitvoer-ontsnappingsconcept is zeer uitgebreid wanneer het met Twig wordt behandeld.
Laten we beginnen met een eenvoudig voorbeeld.
In normale PHP krijg je een uitvoer als deze:
In Twig wordt het veel eenvoudiger, d.w.z. de bovenstaande code wordt gecomprimeerd tot:
foo foo | escape foo | e # snelkoppeling om een variabele te verlaten #
Uitgaande uitvoer is in Twig net zo eenvoudig. Voeg eenvoudig dubbele accolades toe, voer de naam van de variabele in en u krijgt een uitvoer. Zet een pijp met een e ernaast en we zijn begonnen met dingen te ontsnappen. Meer hierover in de volgende drie artikelen van deze serie.
Twig zuivert en beveiligt de gegevens op zichzelf. Het is exclusief zandbak modus controleert op intelligente wijze de volledige code en filtert de best mogelijke resultaten. Dit betekent dat de door de gebruiker gegenereerde sjablonen gemakkelijk en veilig kunnen worden geïmplementeerd. De sandbox-omgeving kan alleen globaal of lokaal worden ingeschakeld voor specifieke sjablonen zoals deze:
include ('post.html', sandboxed = true)
In het geval van een syntaxisfout, debugt Twig uw bestand door een bericht te genereren dat de details bevat zoals uw bestandsnaam en het regelnummer met de problematische code.
Ik heb net gezegd dat Twig een moderne sjablonengine is, wat ook betekent dat je de functionaliteit ervan kunt uitbreiden omdat het vrij flexibel is. Het ondersteunt volledig een efficiënt lexer en parser waardoor ontwikkelaars aangepaste tags, filters, functies, enz. kunnen definiëren.
Afgezien van alle bovengenoemde functies, is Twig zeer goed gedocumenteerd en volledig unit-getest. De API- en sjabloonbibliotheken zijn volledig stabiel en kunnen allerlei complexe taken aan. Een speciaal online boek en complete API-documentatie zijn ook beschikbaar.
Twig fungeert als de nieuwe sjabloontaal voor Drupal 8, wat mijn belangrijkste motivatie is achter het gebruik van deze templating-engine met vertrouwen tegemoet. De goede mensen bij XWP, vooral Weston Ruter, werken aan een voorstel om Twig te laten voldoen aan de VIP-standaarden van WordPress.com.
Tot nu toe draaide de hele discussie rond twee dingen. Ten eerste moeten we een modulaire aanpak hanteren waarbij sjablonen gescheiden blijven van gegevens terwijl aangepaste WordPress-thema's worden gemaakt en ten tweede kan Twig ons daarbij helpen. Maar wat brengt deze twee samen?
Er zijn verschillende pogingen gedaan om de allerbeste integraties tussen Twig en WordPress tot stand te brengen, en een dergelijke moedige poging is Timber, gemaakt door een webbureau met de naam Upstatement. Het maakt gebruik van de Twig-templating-engine, die het mogelijk maakt om modulaire en schone code te schrijven in WordPress.
Hout en Twig kunnen u helpen bij het bouwen van snelle en modulaire WordPress-thema's. Op deze manier kunt u uw HTML-code gescheiden houden van de normale PHP-bestanden, waardoor een duurzamer codepatroon wordt gegarandeerd. Het concept om HTML en PHP gescheiden te houden maakt het mogelijk dat het PHP-bestand zich strikt richt op het leveren gegevens
en logica terwijl het HTML-bestand (Twig-bestand) zich concentreert op de uitzicht
laag van de webapplicatie.
In het algemeen voert Timber drie hoofdtaken uit:
Ik denk dat hun missieverklaring alles zegt:
Hout is een hulpmiddel voor ontwikkelaars die hun HTML willen vertalen in hoogwaardige WordPress-thema's via een intuïtieve, consistente en volledig toegankelijke interface.
In het geval van een regulier WordPress-thema worden alle fragmenten van de PHP- en HTML-code geïntegreerd en aangepast in dezelfde PHP-sjabloonbestanden. Met Timber splitsen we sjabloonbestanden echter in twee verschillende gegevensbestanden: het PHP-bestand en het weergave- / sjabloonbestand, dat wil zeggen het twig-bestand.
Dus de eerste wordt opgeslagen met de bestandsextensie .php
en de tweede heeft .takje
als de extensie. Daarom, als u template-bestanden maakt voor single.php
, uw bestanden krijgen een naam single.php
en single.twig
.
Het vorige bestand verzamelt de gegevens, terwijl de laatste de sjabloon is die de gegevens in HTML gebruikt. Op deze manier kunt u op een modulaire manier dynamische bewerkingen in uw WordPress-thema's toevoegen.
Laten we het allemaal samenvatten:
Timber behandelt de sjabloonbestanden van uw WordPress-thema in PHP- en HTML (Twig) -bestanden. Op deze manier scheid je de logica van het scherm. Het biedt u nieuwe manieren om uw thema te bouwen, in te delen en weer te geven.
Er is veel om van te houden over Twig. Dit artikel was slechts een inleiding over de voordelen van het gebruik van een templating-engine met WordPress. Modulaire code is betere code en is gemakkelijk te onderhouden. Het is hoog tijd voor ontwikkelaars om deze workflow-shift aan te nemen, en ik weet zeker dat Twig hen daarmee kan helpen.
In de komende artikelen zal ik de praktische implementatie van de sjabloonbestanden met Twig laten zien. We zullen bekijken hoe we Twig kunnen implementeren voor het weergeven van WP-afbeeldingen, opmerkingen en menu, met codevoorbeelden. Tot dan als u om het even welke vragen vindt, voel je vrij om te vragen. Vergeet niet om contact op te nemen via Twitter.