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 }}
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 }}