Die Template-Engine Smarty ist sehr beliebt für sehr sichere Webseiten. Dieser Workshop führt Sie in die Welt von Smarty ein und startet mit der Installation
Teil 1 - des Template-Workshops mit Smarty zeigt Ihnen was Smarty eigentlich ist und kann. Verschaffen Sie sich einen Überblick für eigene Projekte.
Was ist Smarty?
Smarty ist eine so genannte Template Engine auf Basis der Programmiersprache PHP (wikipedia.org). Mit Template-Engines trennen Sie das HTML-Gerüst vom Beitragsinhalt der Seiten ab. Sie entwickeln eine Webseitenvorlage in die alle Inhalte geladen werden. Viele bekannte CMS nutzen solche Template-Engines für den Aufbau der Webseiten. Smarty ist eine open Source Anwendung und kostenlos nutzbar. Sie können das Projekt von der Webseite smarty.net herunterladen und auf einem Webserver oder lokalen Server installieren.
Warum ist Smarty?
Keine Ahnung, es hätte auch jede andere Template-Engine wie Twig, Mustache, Plates, Blade oder oder oder sein können. Alle die genannten Template-Engines tun im wesentlichen immer das gleiche, sie laden ein Webseitentemplate in das sie den Beitragstext zur Laufzeit einfügen.
Smarty basiert auf Basis von PHP, während andere auf Sprachen wie JavaScript, Python oder sogar Ruby basieren - es ist also für jeden Sprachdialekt etwas dabei. Dennoch viel meine Wahl auf PHP, da dieser Sprachdialekt stärker verbreitet und auch deutlich typsicherer als JavaScript ist.
Wozu eine Template-Engine?
Auch wenn die händische HTML-Seiten-Entwicklung heutzutage kaum noch betrieben wird, dennoch ein Beispiel aus diesem Bereich. Stellen Sie sich vor, Sie schreiben eine Online-Dokumentation mit mehreren 1000 einzelner HTML-Seiten. Jede Seite hat einen Kopf in dem Überschriften sind, einen Inhaltsbereich der den Beitragstext aufnimmt und eine Fußzeile für Ihr Impressum und Datenschutz.
Ihre Online-Dokumentation soll jetzt noch den Namen des Autors unterhalb des Beitragstextes anzeigen, Sie brauchen also ein neues Feld in allen der über 1000 HTML Seiten. Haben Sie die Anwendung klassisch ausgeführt, müssten Sie daher alle Seiten einzeln modifizieren - das ist wirklich ein menge Arbeit.
Eine Template-Engine funktioniert anders. Es existiert nur eine HTML-Seite die Platzhalter enthält und Anweisungen mit denen sie erkennt welcher Inhalt in die betroffenen Platzhalter geladen werden soll. Beispielsweise gäbe es die Platzhalter {header}, {body} oder {footer}, dorthin werden wie im Beispiel beschrieben die betroffenen Inhalte zur Laufzeit geladen.
<html>
<body>
{header}
{body}
{footer}
</body>
</html>
Code
Das schematische Codeschnipsel oben soll den Inhalt eines solchen HTML-Templates symbolisieren, ohne dabei Anspruch auf Vollständigkeit zu erheben. Dieses Template mus nur einmal existieren, kann jedoch alle 1000 Inhalte Ihrer Onlinedokumentation anzeigen indem es den Text anstelle der Platzhalter läd.
Wollten Sie folglich noch den Autor mit anzeigen, dann reicht es aus ein weiteres Feld aufzunehmen. Nennen Sie es beispielsweise {autor}.
<html>
<body>
{header}
{body}
{autor}
{footer}
</body>
</html>
Code
Das Feld Autor ist im Template unterhalb jedes Beitragstextes vorhanden und kann angezeigt werden. Natürlich können Sie auch ein Datum oder eine Kontakt-Mail auf diese Weise zu Ihrer Doku anreichern, es ist wirklich ganz einfach.
Anmerkung - Dieser Einstiegsbeitrag soll Ihnen eher einen schematischen Einstieg in die Template-Engines geben. Es geht nicht so sehr darum exakte Codeschnipsel zum nachprogrammieren zu erhalten, dies folgt in weiteren Beiträgen.
28.01.2024 Kontakt@Oliver-Lohse.de Parser