Logo

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.

Sabrent ext.Festplattengehäuse

Sabrent ext.Festplattengehäuse - HIGH SPEED Das SABRENT externe Festplatte Gehäuse unterstützt UASP, deshalb kann das Gehäuse Ihnen eine außergewöhlich hohe Übertragungsrate von bis zu 5 Gbps für den Datentransfer bieten! Damit lassen sich HD Filme, Music und data in nur Sekunden transferieren. (Abwärtskompatibel mit USB 2.0 oder 1.1) Hinweis

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

Download Dipper

Dipper ist ein open Source PHP Programm nach BSD3-License, um YAML-Dateien lesen oder schreiben zu können. Bei Dipper handelt es sich um ein einziges PHP Programm, welches nützliche Funktionen für den YAML-Standard bereit hält. Sie können Dipper von GitHub herunterladen. Der Link (oben in der Seite) bringt Sie sofort zum Projektverzeichnis von Dipper und Sie können dort auch die englische Dokumentation nachlesen.

Download Yaml DipperDownload Yaml Dipper

Für den Download des YAML-Parsers von GitHub, wählen Sie bitte den grünen Code-Button (rechts oben) und nutzen den ZIP-Download.

Dipper installieren

Dipper ist wirklich simpel installiert. Die PHP-Datei (master.zip zuvor bitte entpacken) von GitHub kann am besten in einem separatem Ordner Ihres Projektes abgespeichert werden, z.B.:

/dipper/Dipper.php

Es handelt sich dabei um ein einziges praktisches PHP-Script, das alle Funktionen kapselt. Alternativ können Sie Dipper.php auch in der root Ihres Programmverzeichnis ablegen, müssen dann jedoch den Befehl require('Dipper.php') wie gezeigt anpassen.

Dipper einbinden

Binden Sie Dipper in Ihr PHP Programm ein, dabei sollte der Befehl require('dipper/Dipper.php') Dipper aus dem Verzeichnis laden, in dem Sie das PHP-Script abgelegt haben (in diesem Beispiel aus dem Ordner dipper).

001  require('dipper/Dipper.php');
002  use secondparty\Dipper\Dipper as Dipper;
003  $config = file_get_contents('config.yaml');
004  $ymlconfig = Dipper::parse($config);

Hinweis: Die Methode parse() ist in Dipper als static definiert und wird daher nicht mit new Dipper(); verwendet bzw. gerufen.

YAML Datei lesen

Mit diesem Codeschnipsel liest Dipper die Datei config.yaml ein und bereitet den Inhalt als PHP-Objekt auf. Die YAML-Datei liegt dabei im selben Ordner wie auch Ihr PHP-Programm.

001  title:       Das ist der Titel
002  description: Eine Beschreibung
003  author:      CMSWorkbench
004  date:        2022-03-11

Hätte die config.yaml beispielsweise den obigen Inhalt, dann können Sie diesen aus der Variablen $ymlconfig wie folgt auslesen:

001  echo $ymlconfig['title'];          // ergibt: Das ist der Titel
002  echo $ymlconfig['description'];    // ergibt: Eine Beschreibung
003  echo $ymlconfig['author'];         // ergibt: CMSWorkbench
004  echo $ymlconfig['date'];           // ergibt: 2022-03-11

und würden das entsprechende value zum Key title erhalten.

YAML-Dateien können Sie manuell mit fast jedem ASCII Editor selbst erstellen. Für die Strukturierung der Daten in YAML ist die Einrücktiefe entscheidend, als Standard werden 2 Leerzeichen bis 4 Leerzeichen erwartet. Grundsätzlich sollen sich Strukturen bzw. Ebenen durch identische Einrückungen identifizieren.

YAML Datei strukturieren (Dictionary Style, Object Mapping)

Das vorangegangene Beispiel ist wenig strukturiert. Wollten Sie jedoch Unterstrukturen entwickeln, können Sie sich an dem folgenden Beispiel einer YAML-Datei orientieren.

001  title:        Das ist der Titel
002  description:  Eine Beschreibung
003  author:
004    first-name: Oliver
005    last-name:  Lohse
006  date:         2022-03-11

Wollen Sie erneut das Value zu author ermitteln, dann müssen Sie den folgenden PHP-Befehl nutzen, um die YAML-Struktur zu lesen.

001  echo $ymlconfig['author']['first-name'];        // ergibt: Oliver
002  echo $ymlconfig['author']['last-name'];         // ergibt: Lohse

Dieser Style wird im übrigen Dictionary- oder Mapping-Style genannt, denn mit author erhalten Sie ein so genanntes iterierbares Objekt in PHP, welches Sie mit foreach weiter verarbeiten können. Der Key author muss für diesen Zweck leer bleiben, da sein Value ein weiteres Array ist!

Zeilenumbruch und Mehrzeiligkeit in YAML

Zunächst können Sie den Content innerhalb einer einzelnen Zeile unterbringen, für wenige Inhalte durchaus ausreichend. Haben Sie jedoch mehr Inhalt, kann eine Zeile etwas unübersichtlich werden. YAML bietet die Möglichkeit den Inhalt über mehrere Zeilen aufzuteilen.

001  title:        Das ist der Titel
002  description:  Eine Beschreibung
003  author-bio: >
004    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
005    tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.
006  date:         2022-03-11

Leiten Sie mehrzeiligen Content mit dem > Zeichen oder mit der | Pipe ein und tragen in der folgenden Zeile den Inhalt eingerückt darunter.

Als Einrücktiefe setzt die YAML-Syntax mindestens 2 Leerzeichen voraus. Wichtig ist jedoch, das alle Objekte und Elemente einer Strukturebene die gleiche Einrück-Tiefe aufweisen, sonst quittiert der YAML-Parser diesen Fehler mit einem Abbruch.

YAML Datei schreiben mit Dipper

Der YAML Parser Dipper ist natürlich auch in der Lage eine YAML-Datei zu erzeugen und diese auf die Festplatte zu schreiben. Im folgenden Beispiel wird ein YAML-File für ein Affiliate-Modul durch Dipper erzeugt, zunächst mit lediglich zwei Inhalten: Produkt A und Produkt B.

001  require('dipper/Dipper.php');
002  use secondparty\Dipper\Dipper as Dipper;
003  $affiliate = 
004      [
005          'affiliate'=>
006          [
007              'produkt-a'=>
008              [
009                  'title'         =>'Affiliate Produkt A',
010                  'description'   =>'Eine Beschreibung des Affiliate-Produkts A',
011                  'logo'          =>'img/produkt-a.png',
012                  'label'         =>'kaufen...',
013                  'link'          =>'www.amazon.de'
014              ],
015              'produkt-b'=>
016              [
017                  'title'         =>'Affiliate Produkt B',
018                  'description'   =>'Eine Beschreibung des Affiliate-Produkts B',
019                  'logo'          =>'img/produkt-b.png',
020                  'label'         =>'kaufen...',
021                  'link'          =>'www.amazon.de'
022              ]
023          ]
024      ];
025  
026      file_put_contents('affiliate.yaml', Dipper::make($affiliate));

Starten Sie den obige Programm-Code, erzeugt Dipper die entsprechende YAML Datei affiliate.yaml im root-Verzeichnis des PHP Programms.

001  ---
002  affiliate:
003    produkt-a:
004      title: Affiliate Produkt A
005      description: Eine Beschreibung des Affiliate-Produkts A
006      logo: img/produkt-a.png
007      label: kaufen...
008      link: 'www.amazon.de'
009    produkt-b:
010      title: Affiliate Produkt B
011      description: Eine Beschreibung des Affiliate-Produkts B
012      logo: img/produkt-b.png
013      label: kaufen...
014      link: 'www.amazon.de'

Die so entstandene Datei können Sie dann natürlich wie in den vorangegangenen Beispielen leicht erneut mit Dipper einlesen.

Die automatische Erzeugung von YAML Files ist für Installationsroutinen ideal. Dipper führt zudem automatisch einen mehrzeiligen Content mit > ein, wenn er erkennt, das der Inhalt zu lang für die einzeilige Darstellung wird.

Passend:


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.

YAML Syntax in Pico CMS in der Theme Config auslesen

Die YAML Syntax anhand einer Liste erläutert, die beispielsweise Affiliate oder CTA Links aufnimmt und die vom Twig-Template ausgelesen werden können.

YAML Syntax mehrzeiliger Inhalt Multiline Umbruch für Pico CMS

Der YAML Standard ist gegenüber JSON durchaus in der Lage mehrzeiligen Inhalt aufzunehmen (Multiline). Der Beitrag zeigt Ihnen, wie Sie mehrzeilige Texte in YAML erzeugen.

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'.

Das GRAV CMS Admin Backend und Dashboard herunterladen

Das GRAV CMS Admin Backend muss separat heruntergeladen und installiert werden, erst dann bietet GRAV ein bequemes Backend für den Admin und die Redakteure.

Was ist GRAV CMS? Das sollten Sie vorher unbedingt wissen.

GRAV CMS ist ein kostenloses Content Management System (kurz CMS), welches ohne Datenbank auskommt. Der Webinhalt wird in reinen ASCII-Files gespeichert.

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.

Der erste Start und erster Beitrag der Pico CMS Webseite

Dieser Beitrag zeigt Ihnen die einfache Installation und Inbetriebnahme des freien PICO CMS ist. Es sind nur wenige Handgriffe und wenig Voraussetzungen nötig.

Mit Typemill CMS auf eine neue Domain und Webseite umziehen

So einfach ziehen Sie mit einer Typemill CMS Webseite auf eine neue Domain um, es sind drei einfache Schritte die Sie kinderleicht machen können.

CMS die ich empfehlen würde bevor Sie zu WordPress greifen

Meine ganz persönliche Empfehlung für ein CMS aufgrund meiner Erfahrungen als Langjähriger Autor und Opfer vieler Hacker-Angriffe auf meine Seiten.

Was ist ein CMS und Wie funktioniert es?

Die besten Content-Management-Systeme im Vergleich: Alles was ihr über WordPress, Joomla!, Drupal, TYPO3 und Co. wissen müsst. Jetzt Vergleich ansehen.

Welches CMS für was? Oder doch lieber pures HTML?

Eine häufige Frage in vielen Foren, daher eine kleine Empfehlung zur Auswahl des richtigen CMS, denn oft reicht ein Template-Parser wie Twig oder Smarty aus!

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.

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.

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.

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.

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.

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.


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