Neues Backend der Georgien Nachrichten: Objektorientierte Programmierung in PHP

Mobile Seite wird zum Standard

Es gibt Ereignisse, die einen dazu zwingen, grundsätzliche Dinge zu überdenken. Bei uns war es der Ausfall des Internet im Home Office. Grund war der Wechsel unseres Dienstleisters auf Glasfaser. Die Durchschaltung des Anschlusses zu unserem Haus dauerte drei Tage. 

In dieser Zeit haben wir über einen mobilen WLAN-Router den Kontakt zum Internet gesucht. Und dieser Kontakt war langsam. Sehr langsam. Die Folge: Webseiten, die erst ein Framework im Hintergrund laden, tauchten erst nach einer halben Minute im Frontend auf. 

Ein anderes Framework für mobiles Webdesign

Die Georgien Nachrichten hatte ich in der mobilen Version mit dem Twitter Bootstrap Framework aufgebaut. Beim Aufruf der Seite zeigte sich, dass man doch einige Zeit auf das Erscheinen der Seite warten durfte. Diese Agenturwebseite hier hingegen wurde schneller angezeigt. Es zeigte sich also, dass man ohne große Sourcen im Hintergrund schneller am Besucher ist. 

Das war einer der Gründe, warum ich mich entschieden habe, die Georgien Nachrichten noch einmal in Angriff zu nehmen. Der Hauptgrund war jedoch ein anderer. 

Objektorientierte Programmierung mit PHP5 und mySQLi

Unsere Nachrichtenseite gibt es ja schon seit 2002. In dieser Zeit sind neben der reinen Darstellung der Nachrichten weitere Module hinzugekommen. Andere sind verschwunden. Die Darstellung der Nachrichten selber habe ich mehrfach erweitert: Listenansichten, Ordnung nach Rubriken, Tagesansichten, bestimmte Zeiträume. Dazu verlinkte Artikel, Dossiers, Bilderstrecken. Wenn ein solches Projekt über die Jahre wächst, wird der Quelltext im Backend oft unübersichtlich. Vieles programmiert man schnell runter, dann gibt es etwas Neues, manches schreibt man doppelt. 

Die Grundzüge des Backends der Georgien Nachrichten gehen auf die Version 4 von PHP zurück. Ein update auf die Version 5 haben wir im Jahr 2010 gemacht, als wir den Provider gewechselt haben. Mit der Version 5.5 von PHP ergaben sich nun vollkommen neue Möglichkeiten. Und diese haben wir genutzt. Ich habe das Backend der Georgien Nachrichten in ca. 3 Tagen Arbeit komplett objektorientiert neu aufgebaut. Zudem musste die Anbindung der MySQL-Datenbank auf den neuesten Stand gebracht werden. 

Das sind dann erstmal zwei Tage Arbeit, bis man alle Klassen geschrieben, die Daten- und Darstellungsschicht sauber voneinander getrennt und alle Namespaces aufgebaut hat. Dann ging alles sehr schnell. Innerhalb eines Tages habe ich alle Ansichten in Methoden gepackt und in die Darstellungsklasse geschrieben. Dann noch zwei Tage, um alle Ansichten schön zu machen. 

Der große Vorteil der Objektorientierung ist aus meiner Sicht, dass man sehr vieles vereinfachen und standardisieren kann. Dabei muss man abwägen. Ich habe zum Beispiel in der Image-Klasse genau eine Funktion, die mir ein Bild vom Server ausliest und einen String zum Aufbau des Bildes zurückgibt. Man kann das in mehrere Funktionen zergliedern, man kann auch alles in eine Funktion schreiben, denn es gibt nur diese Methode, die von mehreren Klassen genutzt wird. Ich habe mir also überlegt, wie ich die optimale Lösung durchprogrammieren kann. Und ich denke, ich habe diese für unsere Zwecke gefunden. 

Relaunch mit neuem Frontend

Nebenbei habe ich noch mehrere Ansichten im Frontend optimiert. Einige jQuery-Effekte gefielen mir nicht mehr. Ich habe auch da noch ca. 2 Tage Arbeit hineingesteckt. Nun sind viele Listenansichten schöner und funktionaler. 

Am 25. November 2015 ist die neue Seite nun online gegangen. Was mich am meisten gefreut hat, war die Anzeige der Ladezeiten. Der Server braucht nun deutlich weniger als eine Zehntelsekunde, um die Seite durchzuarbeiten. Es ist schon eine Freude. 

Das Internet im Home Office ist nun übrigens spürbar schneller. Ich habe es vor allem beim Hochladen der gesamten Webseite auf den Server gemerkt. Das hat schon was.