So wie ein Sternekoch bei seinem Damastmesser leuchtende Augen bekommt, gerate ich bei meinem neuen Werkzeug ins Schwärmen: Mit Grav ist es mir gelungen, die Entwicklungszeit für Web Apps und Projekte, die managed Content erfordern, drastisch zu verkürzen. Out of the Box liefert Grav ein sicheres App Framework mit automatischer Menüführung, Benutzerrechten und Login Management.

Dieser Artikel geht der Frage nach: Was genau ist Grav und für wen ist es geeignet?

Was ist Grav ?

Grav ist ein sogenanntes Flat File Content Management System (CMS):

  • Grav benötigt keine klassische SQL-Datenbank wie z.B. MySQL.
  • Es stellt nur minimale Anforderungen an den Webspace.
  • Grav ist mit wenigen Klicks installiert und sofort einsatzbereit.
  • Es vereint viele Vorteile von WordPress mit schlankerem Code, höherer Geschwindigkeit und geringeren Kosten.

Grav für Entscheider und Projektmanager erklärt:

Grav kommt an vielen Stellen bereits mit “Batteries included”. Das spart Konfigurations- und Entwicklungskosten.

  • Das Bearbeiten von Inhalten ist so einfach wie einen Brief mit Word zu schreiben. Grav erfordert keine HTML-Kenntnisse.
  • In Grav können Inhalte passwortgeschützt und nur bestimmten Benutzern oder Benutzergruppen zugänglich gemacht werden. Es ist somit die ideale Basis für z.B. ein Intranet oder Kundenportal.
  • Grav ist offen, d.h. es kann relativ einfach an andere Systeme angebunden werden: Als Self-Service Portal für einen Onlineshop, als Kundenportal mit Zugriff auf Bestellstatus aus der Faktura,  als E-Learning System standalone oder integriert in andere Plattformen.
  • Grav ist erweiterbar: Das System ist quelloffen, sehr gut strukturiert und dokumentiert. Ein Programmierer kann Grav Ihrem Unternehmen sehr genau anpassen.
  • Grav ist multilingual: So kann mit wenig Aufwand auch nachträglich eine mehrsprachige Website aufgebaut werden.
  • Grav spart gleich doppelt Zeit und Kosten: Die Zeit zwischen Projektplanung und Release-Date wird extrem verkürzt. Während seiner gesamten Betriebszeit ist Grav weniger wartungsintensiv als WordPress oder Joomla.

Ob Grav zu Ihrem Unternehmen passt, hängt natürlich von der Zielsetzung ab. Aktuell sucht man z.B. eine integrierte, kostenlose ECommere-Lösung wie z.B. WooCommerce oder andere sehr spezialisierte WordPress Plugins in Grav noch vergebens.

Wie einfach Inhalte im Grav Backend bearbeitet werden können, zeigt dieses Beispiel:

Die Seite schaut dann im Grav Frontend so aus – perfekt gestyled:

Was Entwickler über Grav wissen müssen:

Grav basiert auf modernsten Web-technologien: PHP 7, dem Symfony Framework, Pimple Dependency Injector, Doctrine Cache und Twig-Templates. Die Komplexität von Symfony & Co sind nahezu komplett gekapselt. Es bleibt jedem Entwickler überlassen, wie weit er sich damit befassen will. Darüber liegt ein recht einfacher Layer: Die Konfiguration von Grav geschieht über YAML-Dateien. Die Inhalte von Grav werden mit Markdown eingepflegt. Die solide Basis ermöglicht folgende Features:

  • Grav verwendet Textdateien anstatt einem Datenbank-Backend.
  • Zur Suche werden die Inhalte indiziert. Somit ist Grav mindestens genau so schnell wie z.B. WordPress mit einer SQL-Abfrage.
  • Geschwindigkeit: Da alle Inhalte gecached werden, ist Grav extrem schnell. So kann es z.B. als App Framework auf einem Raspberry Pi laufen. Der Overhead einer SQL-Datenbank entfällt komplett. Managed Landingpages mit einem hohen Google Pagespeed Index sind ebenfalls möglich.
  • In Grav können verschiedene Technologien wie Spectre CSS, Bootstrap, Material, JQuery etc. gemischt werden.
  • Über Shortcodes, Shortcode Plugins, native Grav Plugins oder HTML-Code in Content-Seiten, können externe Inhalte in Grav nahtlos präsentiert werden.
  • Das injizieren von PHP, Javascript und CSS ist an vielen Stellen möglich.
  • Durch das einfache Erzeugen von Text-Dateien können in Grav zur Laufzeit User und Seiten erstellt werden – ganz ohne langsame, komplexe API-Aufrufe.
  • Formulare können in Grav per YAML erzeugt werden. während die Eingaben an verschiedene Endpunkte zur Weiterverarbeitung fliessen können. So kann Grav z.B. als Frontend für ein externes Ticketsystem dienen. Auch das asynchrone senden von Formulardaten per AJAX ist möglich.
  • Wer selbst Grav-Plugins entwickeln möchte, hat Zugriff auf eine mächtige API und tonnenweise Event Hooks.
  • Die Lernkurve zum Entwickeln eigener Plugins und Themes ist extrem niedrig.

Hier Beispiel für Grav Code Injection:

Im Markdown-Dokument wird per HTML ein DIV Container eingefügt. Danach werden CSS- und JavaScript-Resourcen über Grav-Shortcodes nachgeladen. Beim Ausführen der Seite, wird der Container per JQuery mit Inhalten gefüllt. Das Ergebnis:

Das ist nur eine von mehreren Möglichkeiten, beliebigem Code in Grav zu implementieren.

Weitere Infos zum Grav CMS hier.