SlideShare ist ein Scribd-Unternehmen logo
Drupal 8 - Template Engine
Alles neu mit Twig ?
Drupal Usergroup Hannover
12.02.2013
● Drupal - Developer bei
● HTML / CSS / JS seit 1999
● PHP seit 2002
● Drupal seit 2008 (Danke DUG-Hannover)
● 244597 auf drupal.org
{{ SteffenR }}
"The flexible, fast and secure
template engine for PHP"
"Twig is a modern template
engine for PHP"
"Symfony 2 PHP framework comes
with a bundled support for Twig
as default templating engine"
" .. .clean separation, using a tag-based syntax,
so no PHP knowledge is needed and improves
reusability of templates."
{{ twig }}
● entwickelt von Armin Ronacher - als Phyton
template-engine
● seit 2009 Default Template-Engine von
Symfony2 (http://twig.sensiolabs.org/)
● erhältlich als Standalone-Lösung zur Einbindung
in eigene PHP-basierte Lösungen
● basierend auf PHP5 - OOP-Templates
● das LESS/SASS für HTML :-)
{{ twig.beschreibung }}
#1499460
"I just wanted to let everyone know that I'm in support
of rethinking the theme system. I'm also comfortable that the team
will come up with a good solution." (Dries Buytaert, 18.04.2012)
John Albin
"We hand themers a loaded gun (PHP) and tell them to
hammer in a nail with it. Oh, and be careful" (Drupalcon Denver)
{{ twig.drupal }}
{{ $phptemplate->gun }}
{{ phptemplate.code }}
stark theme (html.tpl.php)
Ausgabe einer
Variable
Zugriff auf Array
Objekt
Nutzung Drupal
interner t-Funktion
{{ twig.code }}
stark-theme (html.twig)
Ausgabe einer
Variable
Zugriff auf Array /
Objekt Element
Ausgabe
mit Filter
g
{{ $phptemplate['override'] }}
● eine Zentrale Stelle zum Überschreiben der
Ausgabe über ein twig-template
● alle Theme-Funktionen werden zu Template
Files
{{ twig.override }}
● mehr Sicherheit im Theming
● kein PHP/HTML Mix in Templates
● einfache Tag-basierte Syntax
● Wiederverwendbarkeit von Templates
● Integration in IDEs (Netbeans, vim, PHP-Storm
etc..)
● gute Integration in Symfony2 - bringt beide
Communities wieder ein Stück mehr zusammen
{{ twig.vorteile }}
● neue Syntax für Drupal-Themer
● Performance-Bedenken, wg. zusätzlichem
Framework im Theming
● Update Zyklen Drupal vs. Twig
{{ twig.nachteile }}
● Filter
● Kontroll-Strukturen
● Template-Vererbung
● Makros
● Erweiterbarkeit durch OOP
● Sandbox
● erkennt automatisch den PHP-Datentyp - "bye
bye Theme-Render Array of DOOM"
{{ twig.features }}
Ausgabe von Variablen
{{ twig.syntax }}
● Ausgabe von Variablen über {{ }}
● Ausgabe von Kommentaren über {# #}
● einfacher Zugriff Array oder Objektwerte möglich
Kontrollstrukturen
{{ twig.syntax }}
● Ausgabe von Kontrollstrukturen über {% %}
● beschränkt sich im Normalfall auf einfache if/else -
Konstrukte bzw. for-Schleifen
Twig bringt auch eigene Funktionen mit, um Ausgabe zu beeinflussen -
unabhängig von Drupal (Erweiterung möglich)
range, cycle, constant, random, attribute, block,
parent, dump, date
http://twig.sensiolabs.org/doc/functions/index.html
{{ twig.functions }}
● PHP-Funktionen ohne PHP
○ date, replace, url_encode, capitalize, striptags, join,
reverse, length, sort, merge
● Chaining von Filtern
{{ twig.filters }}
<h1>Fragen</h1>
<ul>
{% for question in audience.questions %}
<li>{{ question|e }}</li>
{% endfor %}
</ul>
{{ twig.questions }}
● Drupal 8 Theme and Twig Sprint
http://drupal.org/sandbox/pixelmord/1750250
● Twig-Documentation
http://twig.sensiolabs.org/documentation
● Templating Engines in PHP - http://fabien.potencier.org/article/34/templating-
engines-in-php
● Drupal with Twig templates
http://drupalmotion.com/article/drupal-twig-templates
● [meta] new theme system
http://drupal.org/node/1499460
● What to Expect in Drupal 8
http://lyemium.com/content/what-expect-drupal-8
{{ twig.links }}
{{ thx|default("Danke für die Aufmerksamkeit") }}
{{ speaker.name|default("Steffen Rühlmann") }}
{{ speaker.web|default("www.undpaul.de") }}
{{ speaker.twitter|default("_steffenr") }}
{{ speaker.email|default("steffen@undpaul.de") }}
{{ twig.end }}

Weitere ähnliche Inhalte

PDF
Drupal und twig
PDF
Webservice API - Webportale mit Force.com verbinden
PDF
Neos CMS - das Kompendium (Version 2.0.0)
PDF
node.js - Eine kurze Einführung
PDF
node.js Einführung
KEY
PHP5 und Oracle
PDF
mm_forum 2.0
PPTX
Universal Apps - FHDW
Drupal und twig
Webservice API - Webportale mit Force.com verbinden
Neos CMS - das Kompendium (Version 2.0.0)
node.js - Eine kurze Einführung
node.js Einführung
PHP5 und Oracle
mm_forum 2.0
Universal Apps - FHDW

Andere mochten auch (20)

PPTX
Xarxes pr3-transicions
PPT
Motion ,force and speed
PPTX
E accessibility framework
PPT
Pendidikan sivik
PPSX
Система поддержки сайтов
PDF
Què sabem i què volem saber?
DOC
Computer generation
PDF
Projecte tractament integrat de llengües 2
PDF
Katalog Risfort
PPT
Kviz znanja
PPS
PPT
Proteccion+juridica+software
DOCX
Iforme fes
PPTX
Lo scompenso cardiaco con funzione sistolica conservata 2012
DOCX
Trabajo de la sofi
PPTX
XI UNDICESIMO SALONE DIMPRESA LAB 1 la Supply Chain Leggera - Alessandro Da ...
PPTX
Xarxes socials privacitat
PPTX
Per què les dents de llet es diuen
PDF
806 summer 2013 a
PDF
Matrimonio zaruma celi
Xarxes pr3-transicions
Motion ,force and speed
E accessibility framework
Pendidikan sivik
Система поддержки сайтов
Què sabem i què volem saber?
Computer generation
Projecte tractament integrat de llengües 2
Katalog Risfort
Kviz znanja
Proteccion+juridica+software
Iforme fes
Lo scompenso cardiaco con funzione sistolica conservata 2012
Trabajo de la sofi
XI UNDICESIMO SALONE DIMPRESA LAB 1 la Supply Chain Leggera - Alessandro Da ...
Xarxes socials privacitat
Per què les dents de llet es diuen
806 summer 2013 a
Matrimonio zaruma celi
Anzeige

Drupal 8 templating alles neu mit twig

  • 1. Drupal 8 - Template Engine Alles neu mit Twig ? Drupal Usergroup Hannover 12.02.2013
  • 2. ● Drupal - Developer bei ● HTML / CSS / JS seit 1999 ● PHP seit 2002 ● Drupal seit 2008 (Danke DUG-Hannover) ● 244597 auf drupal.org {{ SteffenR }}
  • 3. "The flexible, fast and secure template engine for PHP" "Twig is a modern template engine for PHP" "Symfony 2 PHP framework comes with a bundled support for Twig as default templating engine" " .. .clean separation, using a tag-based syntax, so no PHP knowledge is needed and improves reusability of templates." {{ twig }}
  • 4. ● entwickelt von Armin Ronacher - als Phyton template-engine ● seit 2009 Default Template-Engine von Symfony2 (http://twig.sensiolabs.org/) ● erhältlich als Standalone-Lösung zur Einbindung in eigene PHP-basierte Lösungen ● basierend auf PHP5 - OOP-Templates ● das LESS/SASS für HTML :-) {{ twig.beschreibung }}
  • 5. #1499460 "I just wanted to let everyone know that I'm in support of rethinking the theme system. I'm also comfortable that the team will come up with a good solution." (Dries Buytaert, 18.04.2012) John Albin "We hand themers a loaded gun (PHP) and tell them to hammer in a nail with it. Oh, and be careful" (Drupalcon Denver) {{ twig.drupal }}
  • 7. {{ phptemplate.code }} stark theme (html.tpl.php) Ausgabe einer Variable Zugriff auf Array Objekt Nutzung Drupal interner t-Funktion
  • 8. {{ twig.code }} stark-theme (html.twig) Ausgabe einer Variable Zugriff auf Array / Objekt Element Ausgabe mit Filter
  • 10. ● eine Zentrale Stelle zum Überschreiben der Ausgabe über ein twig-template ● alle Theme-Funktionen werden zu Template Files {{ twig.override }}
  • 11. ● mehr Sicherheit im Theming ● kein PHP/HTML Mix in Templates ● einfache Tag-basierte Syntax ● Wiederverwendbarkeit von Templates ● Integration in IDEs (Netbeans, vim, PHP-Storm etc..) ● gute Integration in Symfony2 - bringt beide Communities wieder ein Stück mehr zusammen {{ twig.vorteile }}
  • 12. ● neue Syntax für Drupal-Themer ● Performance-Bedenken, wg. zusätzlichem Framework im Theming ● Update Zyklen Drupal vs. Twig {{ twig.nachteile }}
  • 13. ● Filter ● Kontroll-Strukturen ● Template-Vererbung ● Makros ● Erweiterbarkeit durch OOP ● Sandbox ● erkennt automatisch den PHP-Datentyp - "bye bye Theme-Render Array of DOOM" {{ twig.features }}
  • 14. Ausgabe von Variablen {{ twig.syntax }} ● Ausgabe von Variablen über {{ }} ● Ausgabe von Kommentaren über {# #} ● einfacher Zugriff Array oder Objektwerte möglich
  • 15. Kontrollstrukturen {{ twig.syntax }} ● Ausgabe von Kontrollstrukturen über {% %} ● beschränkt sich im Normalfall auf einfache if/else - Konstrukte bzw. for-Schleifen
  • 16. Twig bringt auch eigene Funktionen mit, um Ausgabe zu beeinflussen - unabhängig von Drupal (Erweiterung möglich) range, cycle, constant, random, attribute, block, parent, dump, date http://twig.sensiolabs.org/doc/functions/index.html {{ twig.functions }}
  • 17. ● PHP-Funktionen ohne PHP ○ date, replace, url_encode, capitalize, striptags, join, reverse, length, sort, merge ● Chaining von Filtern {{ twig.filters }}
  • 18. <h1>Fragen</h1> <ul> {% for question in audience.questions %} <li>{{ question|e }}</li> {% endfor %} </ul> {{ twig.questions }}
  • 19. ● Drupal 8 Theme and Twig Sprint http://drupal.org/sandbox/pixelmord/1750250 ● Twig-Documentation http://twig.sensiolabs.org/documentation ● Templating Engines in PHP - http://fabien.potencier.org/article/34/templating- engines-in-php ● Drupal with Twig templates http://drupalmotion.com/article/drupal-twig-templates ● [meta] new theme system http://drupal.org/node/1499460 ● What to Expect in Drupal 8 http://lyemium.com/content/what-expect-drupal-8 {{ twig.links }}
  • 20. {{ thx|default("Danke für die Aufmerksamkeit") }} {{ speaker.name|default("Steffen Rühlmann") }} {{ speaker.web|default("www.undpaul.de") }} {{ speaker.twitter|default("_steffenr") }} {{ speaker.email|default("steffen@undpaul.de") }} {{ twig.end }}