CMS mit Node.js statt PHP?

Content-Management-Systeme mit Node.js anstatt von PHP?

Content-Management-Systeme mit Node.js anstelle von PHP?

In diesem Artikel möchte ich einen Teil meiner Gedanken zu Content-Management-Systemen (kurz CMS) mit der Node.js-Plattform niederschreiben.

Momentan sind die populärsten CMS meist in PHP geschrieben, darunter die 3 meist-verwendeten: WordPress, Joomla und Drupal (Quelle). CMS die mit Node.js umgesetzt sind, konnte ich jedoch – verglichen mit der riesigen Auswahl an PHP-basierten Systemen – nur wenige ausfindig machen. Wenn man bedenkt, dass die Entwicklung von Node.js erst im Jahr 2010 begannt und es die drei soeben genannten CMS bereits schon davor gab, so verwundert dies wenig.

Content-Management-Systeme mit Node.js stehen noch ganz am Anfang. Somit wirft sich die Frage auf, welches Potential sie haben und welche Positionen sie in in Zukunft einnehmen können.

Potential #

Im Unterschied zu einem PHP-Script ist eine Node.js-Anwendung dauerhaft aktiv. Daraus ergibt sich der Vorteil, Variablen Anfragen-übergreifend zu speichern und Aufgaben Anfragen-übergreifend zu erledigen. Ein einfaches Beispiel hierfür ist ein Zähler, der bei jedem Seitenaufruf (seit dem Server-Start) um eins erhöht wird. In Node.js müsste man dazu einfach eine Variable x bei jedem Aufruf um 1 addieren x++.

In PHP ist dies logischerweise deutlich aufwendiger: Da ein PHP-Script-Ablauf immer nur für eine Anfrage zuständig ist, können Variablen mit PHP selbst auch nicht zwischen mehreren Anfragen gespeichert werden. Stattdessen muss man hierfür eine Textdatei, eine externe Anwendung wie eine Datenbank oder eine andere Erweiterung verwenden, was zum einem aufwendiger zu programmieren und zum anderem auch (im Falle der Datenbank) zu einer schlechteren Performance führt, da diese bei jedem Aufruf neu gelesen und beschrieben werden muss.

Minifizierung #

Ein weiteres Beispiel ist die automatisierte Minifizierung von CSS- und (clientseitigen) JavaScript-Dateien: Mit Node.js ist es ziemlich leicht möglich, CSS-/JS-Dateien automatisch zu minifizieren. Man muss lediglich ein entsprechenden Modul in die Anwendung einbinden (z.B. piler), welches diese Aufgabe übernimmt, und es anschließend mit dem Rest der Anwendung verbinden. Sobald die Anwendung nun startet, werden die entsprechenden Dateien minifiziert.

Mit PHP wäre das nicht so leicht: Man könnte die minifizierung entweder erst bei Aufruf der Website ausführen und anschließend die minifizierte Datei im gewünschtem Verzeichnis ablegen. Oder man koppelt die CSS/JS-Dateien an ein PHP-Script, das beim Aufruft die originalen CSS/JS-Dateien minifiziert und zurückliefert. Beides würde zu einer Ladeverzögerung der Website bzw. CSS-/JS-Datei führen, durch einen Cache könnte man diese auf den ersten Aufruf beschränken. Eine weitere Möglichkeit ist, einen Cronjob zu schalten der aller x Sekunden ein PHP-Script aufruft, welches prüft ob Änderungen vorliegen und die Dateien dann gegebenenfalls minifiziert. Alle diese Möglichkeiten sind aber recht Aufwendig und keinesfalls so elegant, wie es mit einer dauerhaft aktiven Anwendung wie Node.js der Fall ist.

Echzeit-Kommunikationspider-13516_640

Ein weiterer Vorteil ist sicherlich die Möglichkeit der Echzeit-Kommunikation zwischen Server und Client. Bis jetzt ist mir kein PHP-CMS bekannt was die Fähigkeit besitzt, Artikel bei einer Änderung sofort (also ohne neuladen der Seite) zu aktualisieren. Mit Node.js ist dies problemlos möglich da A) der Server dauerhaft aktiv ist, B) sowohl Node.js als auch der Webbrowser JavaScript nutzen und C) eine Websocket-Verbindung zwischen beiden Seiten hergestellt werden kann.

Mit PHP müsste der Client aller x Sekunden eine AJAX-Anfrage an den Server senden, was zum einem zu einer (maximalen) Aktuallisierungs-Verzögerung der x Sekunden führt und zum anderem eine Menge Serverlast erzeugen kann, wenn viele Besucher online sind.

Fazit #

Ich denke, dass Content-Managmant-Systeme mit Node.js in in Sachen Performance und Intuitivität deutliches Potential gegenüber den bekannten auf PHP basierenden CMS haben. Ein Beispiel für die Echzeit-Kommunikation mit einer Websocket-Verbindung ist Nodize, eines der ersten CMS welches die Node.js-Plattform verwendet.

Zukünftig werden sicherlich noch weitere auf Node.js aufbauende CMS erscheinen, und neue interessante Features hervorbringen. Hoffentlich werden diese irgendwann vom Funktionsumfang mit WordPress, Joomla und Drupal mithalten können, um eine wirkliche alternative zu bieten.

VN:F [1.9.22_1171]
Bewertung: 4.0/5 (6 Bewertungen)
CMS mit Node.js statt PHP?, 4.0 out of 5 based on 6 ratings
Regelmäßige Beiträge über Node.js

nodecodeAbonniere den kostenlosen NodeCode-Newsletter, und bleibe auf dem laufenden über neue Beiträge zum Thema Node.js. Darunter:

  • Informationen und Neuigkeiten rund um Node.js und zugehörigen Modulen
  • Vorstellung von interessanten Frameworks und Bibliotheken
  • Anleitungen und Tutorials zu Node.js und weiterführenden Technologien
  • Sowie vieles mehr...

schon 2 Kommentare gehe zum kommentieren

  1. TC /

    „…CMS die mit Node.js umgesetzt sind, konnte ich jedoch – verglichen mit der riesigen Auswahl an PHP-basierten Systemen – nur wenige ausfindig machen…“

    Welche denn außer nodize.com, bei dem man offenbar ins Leere läuft?

    1. TC /

hinterlasse einen Kommentar