Technische Realisierung


Diese Applikation wurde ab September 2018 von Grund auf überarbeitet. Obgleich ich mich schon vor 15 Jahren mit Templates beschäftigt habe, waren die alten Seiten doch sehr "selbst gestrickt". Außerdem ist die Version 4 bzw. 5 von PHP inzwischen sehr in die Jahre gekommen, so dass eine Modernisierung auch technisch anstand.

Entwicklungsumgebung

Den Rahmen der Entwicklungen bildet das Framework Laravel, das mir – hoffentlich – ermöglicht, näher an den Release-Zyklen zu sein, als es bisher der Fall war. Laravel bietet zahlreiche Module, die die Funktionalität sinnvoll und einfach erweitern. Folgende Module haben mir besonders geholfen:

  1. Laravel-Maps: Dieses Modul ermöglichte mir einen lang gehegten Traum umzusetzen: die Organisationseinheiten auf einer dynamischen Karte anzuzeigen. Es ist sehr einfach zu benutzen, ‐ allerdings habe ich einige Anpassungen vornehmen müssen. Als Kartenmaterial ‐ ganz bewusst ‐ nur das von Openstreetmap genutzt.
  2. Mit barryvdh/laravel-dompdf lassen sich Abfragen als pdf-Dokumente exportieren. Da diese Funktion ziemlich viel CPU-Last erzeugen kann, bleibt diese Funktion einstweilen nur registrierten Benutzern vorbehalten.
  3. Die Widgets von arrilot/laravel-widgets strukturieren schön die Daten zu den einzelnen Organisationseinheiten und machen manche Seite schön übersichtlich(er).
  4. Für grafische Darstellungen ist in Bälde die Nutzung des Moduls khill/lavacharts vorgesehen.
Ein wenig Angst habe ich schon gehabt: Als Freizeitentwickler fühlt man sich anfangs ziemlich erschlagen von den zahlreichen Abhängigkeiten. Mit ein wenig Übung stellt man aber fest: Das Portieren von PHP5 auf PHP7 ging weitaus zügiger von der Hand, als dies zunächst befürchtet wurde. – Bei der Gelegenheit habe ich auch den Editor Atom kennengelernt. Ein wirklich nützliches Tool, das höheren Bekanntheitsgrad verdient hat.

Programmiersprache

Benutzt wurde die Skriptsprache PHP, und zwar in der heutigen Version 7.3. Da man an JavaScript nicht unbedingt vorbei kommt, sind auch einige Funktionen hiermit umgesetzt worden.

Datenbank

Die Datenbasis wird im Netz von einer Datenbank von MySQL verwaltet; privat nutze ich hierzu einen "Fork" von MySQL mit dem Namen MariaDB. MariaDB ist Open Source und unterwirft sich nicht dem Dictum von Oracle.

Versionierung

Diese Seiten unterliegen seit einiger Zeit auch einer Versionsverwaltung. D.h. die aktuellen Entwicklungsstände werden in ein eigenständig betriebenes GIT "eingecheckt" und von hieraus auch released.

  1. pragmarx/version führt die Versionierung dieser Webseite mit.
  2. Die Commits im Versionsverwaltungssystem GIT werden mit dem Modul graham-campbell/markdown ausgelesen und automatisiert in die Release-Übersicht und die CHANGELOG.md eingetragen. Ein Stück mehr Automatisierung des Deployments.
Die Nutzungsbedingungen und Lizenzen aller hier genannten Module sind den jeweiligen Seiten zu entnehmen, auf die hier referenziert wurde.

© Carsten Kumke, 04.11.2020