Ralf Eggert Travello GmbH

Viele Tools leiden heutzutage unter chronischer Featuritis und sind deshalb nicht immer die performanteste Lösung für ein Problem. Plates jedoch ist sehr schnell – und das ohne Caching oder Kompilierung.

Mit Plates steht für PHP ein vergleichsweise neues Paket zum Verarbeiten von Templates bereit. Es arbeitet mit nativen PHP-Templates und steht als performante Alternative zu den etablierten Templatesystemen bereit. Sie erfahren in diesem Artikel, wie Sie Plates installieren können, was es kann und wie Sie es in einige PHP-Frameworks integrieren können.

Das native PHP-Renderingsystem Plates ist noch vergleichsweise jung: Plates wird seit 2013 unter Federführung von Jonathan Reinink entwickelt. Plates gehört der „League of Extraordinary Packages“ an, einem Zusammenschluss von Entwicklern, die moderne, stabile und gut ausgetestete Packages für PHP bereitstellen. Alle Pakete der „Liga“ richten sich nach den Standards der PHP Framework Interoperatibility Group (PHP-FIG) und den Best Practices der Initiative „PHP The Right Way“. Zudem können alle Pakete per Packagist und Composer installiert werden. In dieser „Liga“ sind auch weitere interessante Komponenten vertreten, z. B.:

  • Csv – eine Bibliothek zum Verarbeiten von CSV-Dateien
  • Event – ein Tool zum Verarbeiten von Events in einer Applikation oder der Domänenschicht einer Anwendung
  • Glide – eine Library für die Bildmanipulation auf Anfrage, deren API per HTTP angesteuert werden kann
  • Omnipay – eine Bibliothek für die Zahlungsabwicklung verschiedener Gateways wie PayPal oder Wirecard

Doch genug des Namedroppings an dieser Stelle, wenden wir uns nun Plates zu. Anders als reine Template-Engines wie Twig oder Smarty verwendet Plates keine eigene Templatesprache oder Templatesyntax und arbeitet auch nicht mit vorkompilierten Templates. Die Templates werden in reinem PHP geschrieben – mit allen Vor- und Nachteilen, die dieser Ansatz mit sich bringt. Am ehesten ist Plates noch mit Zend\View vergleichbar, der Komponente zum Verarbeiten von Templates aus dem Zend Framework.

Warum native PHP-Templates?

Es gibt viele Gründe, eine „richtige“ Template-Engine wie Twig oder Smarty mit eigener Syntax zu verwenden:

  • Die templateorientierte Syntax macht es Webdesignern ohne tiefer gehende PHP-Kenntnisse leichter, die Templates einer Anwendung zu erstellen.
  • Die Syntax dieser Templatesprachen hat ihren Fokus auf der Ausgabe von Daten.
  • Durch Templatevererbungen wird die Wiederverwendbarkeit von Templates erhöht.
  • Durch den sogenannten Sandbox-Modus kann niemand in dem Template groben Unfug, wie das Manipulieren von Sessiondaten oder das Schreiben von Daten in eine Datenbank, treiben. Die Syntax erlaubt eben nur Kontrollstrukturen, die Ausgabe von Daten sowie vordefinierte Funktionen.
  • Durch automatisches Escaping der ausgegebenen Templatevariablen sind diese Templates weitestgehend vor XSS-Attacken („Cross-site Scripting“) gefeit.

Es gibt sicherlich noch weitere Vorteile, die die Liste ergänzen können. Erkauft werden diese Vorteile jedoch durch die Notwendigkeit, dass die geschriebenen Templates erst einmal kompiliert und somit in natives PHP übersetzt werden müssen. Das bedeutet auch trotz des Cachings der kompilierten Templates einen gewissen Overhead. Templatesysteme wie Plates oder Zend\View, die mit nativem PHP Templates bauen, bieten im Gegensatz dazu jedoch auch ihre Vorteile.

Den vollständigen Artikel lesen Sie in der Ausgabe:

PHP Magazin 3.17 - "Plates"

Alle Infos zum Heft
579781249Frisch serviert: PHP Template Rendering mit Plates
X
- Gib Deinen Standort ein -
- or -