Logo

Kleinster PHP Template Parser mit Heredoc Syntax der Welt


Das ist die kleinste PHP-Template-Engine bzw der kleinste Template-Parser in PHP, der mit Heredoc Syntax arbeitet. Die Heredoc Syntax ist ideal für kleine Prototypen.

Magnetisches Smart Watch Schnellladegerät

Magnetisches Smart Watch Schnellladegerät - ⚡ Multifunktionales 2 in 1 Schnellladegerät ⚡ Dank seines kompakten Designs ist es kompatibel mit iWatch 7, 6, 5, 4, 3, 2, 1 einschließlich 38mm 40mm 42mm 44mm Version und kompatibel mit iPhone 13, 12, 11, Max, XR, XS, X, 7, 8 und iPad Serie ⚡ Das 2 in 1 Ladekabel kann Ihre Smartwatch und Ihr Telefon gleichzeitig aufladen. Hinweis

kaufen...
Automad Bludit Coast GetSimple GRAV Handlebars Java PHP Pico Smarty Templating Typemill WonderCMS WordPress yamlCMS

Der Sprachdialekt PHP ist von Hause aus templatefähig, daher gibt es immer wieder Diskussionen im Web über den Sinn und Unsinn von Template-Engines wie Twig oder Smarty. Ungeachtet dessen möchte ich in diesem Beitrag demonstrieren, wie klein und kompakt ein PHP Template Mechanismus mit Heredoc-Syntax sein kann.

Der Post

Der Post unterteilt sich in einen Kopf- und einen Kopf-Bereich. Im Kopfbereich finden sich einige Informationen zu Titel, Beschreibung und Teaser-Grafik.

...  Oliver Lohse
...  Beschreiben Sie hier den Beitrag, das ist der Anleser mit max. 160 Zeichen
...  17-03-2022
...  ---
...  Der vollständige Beitragstext, mit unbegrenzter Anzahl an Zeichen, also der eigentliche Artikel

Der Kopf nimmt drei Metainfos auf und ist vom eigentlichen Inhalt mit drei Bindestrichen getrennt bzw. separiert. Diese Trennung wird für den Parser später wichtig, um die Metainfos vom Inhalt unterscheiden zu können. Wenn Sie mehr Metainfos benötigen, dann tragen Sie einfach weitere ein.

Das HTML-Template

Das Templatefile ist für Demonstrationszwecke ebenfalls recht übersichtlich - auf umständliches CSS wird verzichtet, es kommen Standard-HTML Tags zu Einsatz.

...  <html>
...      <title> {title} </title>
...      <body>
...          <h1> {title} </h1>
...          <hr>
...          <p> {description} </p>
...          <p> {content} </p>
...          <small> {date} </small>
...      </body>
...  </html>

Das Template-File nimmt jeweils einen Template-Token für Titel, Beschreibung, Inhalt und Datum auf. In späteren Ausbaustufen können Sie dies durch eigene Tokens leicht ersetzen und ausgiebig mit CSS, z.B. Bootstrap, elegant formatieren.

Der PHP Template Parser (Heredoc Syntax)

Der folgende Code ist die vollständige Zusammenstellung der Beitragsdatei, des Templates und des Parsers in einem übersichtlichen PHP-Script in Heredoc-Syntax.

001  <?php
002  // ------------------------------------------------------------------- Beitrag (Heredoc Syntax)
003  $md = <<<EOD
004  Oliver Lohse
005  Beschreiben Sie hier den Beitrag, das ist der Anleser mit max. 160 Zeichen
006  17-3-2022
007  ---
008  Der vollständige Beitragstext, mit unbegrenzter Anzahl an Zeichen, also der eigentliche Artikel
009  EOD;
010  // ------------------------------------------------------------------- Template (Heredoc Syntax)
011  $template = <<<EOD
012  <html>
013      <title>{title}</title>
014      <body>
015          <h1>{title}</h1>
016          <hr>
017          <p>{description}</p>
018          <p>{content}</p>
019          <small>{date}</small>
020      </body>
021  </html>
022  EOD;
023  // ------------------------------------------------------------------- Parser
024  $upper_and_lower_section   = explode('---', $md);
025  $header_section = explode("\n", trim($upper_and_lower_section[0]));
026  
027  $header_section[] = $upper_and_lower_section[1];
028  $templatetarget  = array(
029      '{title}',
030      '{description}',
031      '{date}',
032      '{content}'
033  );
034  
035  $template = str_replace($templatetarget, $header_section, $template);
036  echo $template;
037  
038  ?>

Zum besseren Verständnis, einige wichtige Codezeilen Erläutert.

Hinweis: Die Reihenfolge der Metainformationen des Beitrags, muss der Reihenfolge des Arrays $templatetarget entsprechen. Der {content} wird immer am Schluss angehägt, was durch Zeile 027 verursacht wird.

Fazit

Zugegeben, der kleine Template-Parser ist nicht sehr praktikabel, da er keine externen Dateien läd, er läd weder eine Beitragsdatei, noch eine Template-Datei. Dennoch kann dies einfach angepasst werden und nicht zuletzt soll der Code ein Beispiel für das Parsing mit PHP-Mitteln sein.

Tipp: Die so genannte Heredoc-Syntax ist ideal dafür geeignet, mal eben schnell einen Prototypen zu erstellen, der später externe Dateien verarbeiten soll, diese aber zu Demonstrationszwecken intern läd. In späteren Ausbaustufen können diese dann extern ausgelagert werden und mittels Dateizugriff gelesen werden.

Hinweis: Die Metainformationen in diesem Beispiel müssen immer eine festgelegte Reihenfolge haben, ändern Sie diese, müssen Sie dies auch im Code anpassen. In solchen Fällen sind andere Formate wie YAML oder JSON besser geeignet, da diese unabhängig von der Reihenfolge der Keys sind.

Passend:


Das tree.php Snippet für eine Baumstruktur in Automad CMS

Erstellen Sie im CMS Automad eigene Templates, dann sollten Sie einen Blick auf diese Ordner werfen, denn sie sind maßgeblich für das Template wichtig.

Das Script edit-content.php im Bludit CMS individuell anpassen

Möchten Sie den Backend-Editor des Autors oder Admin individuell anpassen? Dann finden Sie hier den richtigen Pfad zur Programm-Source edit-content.php.

Einfacher SPAM Schutz im Kontaktformular für Bludit CMS

Wenn Sie das Bludit-Plugin Contact3 nutzen, können Sie in diesem Plugin eine einfache und wirkungsvolle Blackliste einbauen, die den Inhalt Ihrer Mail prüft

Ein Array in der de_DE.json des Bludit CMS anlegen

Legen Sie ein Array in der Sprachdatei de_DE.json des Templates an und greifen aus dem Template auf einzelne Key Value Paare zu um Affiliate Links zu erzeugen

Die Methode User() für Abfragen im Bludit CMS nutzen

Greifen Sie mit der Methode User() auf Attribute des angemeldeten und registrierten Benutzers zu und zeigen Namen, Avatare oder Kontaktdaten unter Beiträgen an

E-Mail mit PHP lesen, mit PHP auswerten und im Posteingang löschen

Mit diesem PHP Script lesen Sie eine Mail in Ihrem Postfach, werten den Inhalt mittels PHP aus und löschen im Anschluss die Mail aus dem Posteingang mit PHP.

Ein Heredoc-Parser und Mini CMS mit PHP zum Templating erstellt

Dieser Beitrag zeigt einen Heredoc Template Parser und mini CMS, erstellt in PHP, unter Nutzung der Heredoc-Syntax. Content, Template und Parser in einer Datei.

Die kleinste PHP Template-Engine und kleinstes CMS der Welt

Das ist die kleinste PHP Template-Engine, bzw. das kleinste PHP-CMS der Welt, erstellt mit der Programmiersprache PHP und 7 Zeilen Code.

Eine einfache PHP FlatFile Projekt und Vorhaben DB

In diesem Beitrag können Sie eine kleine FlatFile Projekt Datenbank herunterladen. Eine Beispielimplementierung in Anlehnung an die FlatFileDB von H.Wiledal

PHP mit JavaScript aufrufen

Möchten Sie einen Log-Mechanismus entwickeln den Sie leicht in jedes PICO Template einbinden können, dann ist JavaScript und PHP ideal dafür.

PHP mit JavaScript aufrufen

Möchten Sie einen Log-Mechanismus entwickeln den Sie leicht in jedes PICO Template einbinden können, dann ist JavaScript und PHP ideal dafür.

Die richtige Wahl der Templatesprache Templating Tipps

In welcher Schreibweise sollten Sie CMS Templates erstellen? Gemischt HTML und PHP oder doch lieber waschechtes PHP? Dieser Beitrag erleichtert den Einstieg.

Ein neues Datenbanfeld für WonderCMS in der json-DB anlegen

Mit diesem Trick legen Sie neue Datenbank-Felder in der JSON-Datenbank des WonderCMS vollkommen automatisiert an - mit nur einer Codezeile im WonderCMS Theme.

th3_alpha.php im WordPress CMS Log und die Beudeutung

Das WordPress Plugin steht im Verdacht Malware zu enthalten. In unterschiedlichen Foren im Netzt sind dazu widersprüchliche Infos zu finden - es ist abzuwarten

Was ist yamlCMS - yamlCMS ist nicht zu hacken! Glauben Sie nicht?

yamlCMS ist mein Beitrag und meine eigene Vorstellung an eine sichere Webseite auf Basis eines Flat File CMS mit lesbarer Datenbankstruktur ohne 'Firlefanz'.

Anleser im Bludit CMS Template DEVTHEME einstellen

Stellen Sie den Anleser des Beitrags im Bludit Template DEVTHEME individuell ein, indem Sie die Anzahl anzuzeigender Zeichen mit einem PHP Befehl begrenzen.

Das Feld TEMPLATE in den Beitragseinstellungen des CMS Bludit

So können Sie das freie Feld TEMPLATE in den Beitragseinstellungen verwenden. Fragen Sie es mit dem folgenden Coding des Beitrags ab und steuern das Templating

Steuern Sie die Art des anzuzeigenden Bludit Templates

Mit diesem Coding können Sie verschiedene Templates starten, jenachdem ob der Leser eine Seite, Kategorie, home oder Tag wählt. Bludit kennt vier Seiten-Typen

Templating, funktionfähiges Template für das CMS GetSimple

Teil 1 - Der Einstieg in das Templating mit dem freien CMS GetSimple - der Name ist Programm, denn dieses CMS ist klar und leicht beherrschbar strukturiert.

Templating 3 ein einfaches Layout für das CMS GetSimple anlegen

Teil 3 - Ein GetSimple Template erstellen. In Verbindung mit dem freien und beliebten CSS-Framework Bootstrap eine leichte Sache auf dem Weg zum eigenen Blog.

Democode und Beispieltemplate für Handlebars in JavaScript

Dieser Beitrag zeigt ein einfaches Demo Template für die JavaScript basierte Template Engine Handlebars. Dieses Template ist sogar offline funktionsfähig.

Welchen Sinn machen JavaScript Template Engines heutzutage?

Man darf sich durchaus fragen welchen Sinn Template-Engines in JavaScript machen, da diejenigen User zunehmen, die das JavaScript im Browser deaktivieren.

Standardisiertes PHP Formular Designpattern entwickeln

Die Formularverarbeitung durch PHP ist der beliebteste Standard im Web. Nutzen Sie ein intelligentes Design, können Sie sich viel Arbeit und Stress ersparen.

Affiliate Links mit YAML und TWIG für Pico CMS ohne Plugin

Zufällige Affiliate-Links auch ohne externe Plugins mit Hilfe von YAML und der Templatesprache Twig in Pico CMS realisieren, das ist sogar wirklich sehr einfach.

Affiliate Links mit YAML und TWIG für Pico CMS ohne Plugin

Zufällige Affiliate-Links auch ohne externe Plugins mit Hilfe von YAML und der Templatesprache Twig in Pico CMS realisieren, das ist sogar wirklich sehr einfach.

Teil 7 eigene Templateabfragen in Smarty Template Engine

Möchten Sie in Smarty Templates Bedingungen abfragen, dann können Sie den IF Befehl des Smarty Parsers nutzen, um die Ausgabe des Templates zu steuern.

Mit einem HTML-Template beginnen - Templating Tipps

Erarbeiten Sie als Prototypen ein reines HTML-Template das Ihnen zusagt. HTML-Templates sind schneller entwickelt und müssen weniger Restriktionen einhalten.

Werden Sie Template-Entwickler so starten Sie Templating Tipps

Werden Sie zum Template-Entwickler und beginnen mit leichten Arbeiten, portieren Sie Ihre Templates später in die großen CMS wie WordPress, Bludit oder Joomla

Aktivieren Sie den Markdown Parser im CMS Bludit ganz leicht

So aktivieren Sie den integrierten und deutlich einfacheren Markdown-Parser des Bludit CMS und schalten die visuellen Editoren TinyMCE und EasyMDE ab.

Bildlink mit Markdown Parser in Pico CMS realisiert

Mit der Markdown Syntax können Sie auch einen klickbaren Bildlink im Text eintragen. Es ist eine Schachtelung verschiedener bekannter Markdown Format-Befehle.

Markdown Bildliste im Text anlegen und Bilder referenzieren

Dieser Beitrag zeigt Ihnen, wie Sie einen Bildindex in Markdown anlegen und im Texte auf diese Bilder leicht referenzieren können. Dies ist eine Erleichterung.

Teil 2 so einfach installieren Sie die Smarty Engine

Nachdem Sie die kostenlose Template-Engine Smarty herunter geladen haben, installieren Sie die Programme auf den Webserver und beginnen mit dem Templating.

Strukturtemplate ohne Code mit dem Smarty Template Parser

Erstellen Sie ein Webseite mit der Template-Engine Smarty ohne aufwändigen Programm Code. Ein trivialer Beitragsloop wiederholt sich in festen Strukturen.

Dipper fast YAML Parser - YAML Files lesen und schreiben

Dipper ist der kleinste YAML-Parser mit dem YAML Dateien gelesen und geschrieben werden können. Ein PHP-Beispiel zum lesen und schreiben von YAML mit Dipper.


Meta: Instagram CMSWorkbench.de GIMP-Handbuch.de Kontakt Impressum Datenschutz