CMS, Framework oder selbstprogrammiert?

Wer ein neues Projekt beginnt, stellt sich oft zu Beginn die Frage, wie er es realisieren soll. Man kann alles selbst programmieren, die Hilfe eines Frameworks in Anspruch nehmen oder zu einem CMS wie Joomla oder Drupal greifen.

Vorweg gesagt: Eine allgemein gültige Antwort gibt es nicht. Es ist von mehreren äußeren Faktoren abhängig, wofür man sich entscheiden sollte. Aber schauen wir uns die einzelnen Möglichkeiten im Detail an.

Content Management System

Ein CMS klingt oft nach einer Eierlegenden Wollmilchsau. Die gängigsten Features sind vorhanden, was nicht vorhanden ist, kann durch Plugins realisiert werden. Diese werden von einer oft riesigen Community erstellt und sind zumeist kostenlos verfügbar. Aber ein CMS hat auch Nachteile. Nicht alle Features werden durch Plugins abgedeckt, gerade spezielle Wünsche müssen oft in Eigenregie eingebaut werden.

Vorteile

  • Die gängigsten Features sind bereits vorhanden.
  • Erweiterungen sind durch zahlreiche Plugins möglich.
  • Eine große Community hilft bei der Einarbeitung und der Weiterentwicklung.
  • Das Fixen von Sicherheitslücken wird durch die Community erledigt, man muss lediglich die neuste Version installieren.

Nachteile

  • Es existieren oft zahlreiche bekannte Sicherheitslücken. Wer sein System nicht aktuell hält, riskiert Angriffe.
  • Das erste Einarbeiten benötigt seine Zeit. Oft sind Optionen nicht da, wo man sie sucht, oder man fühlt sich durch die Vielzahl der Einstellungsmöglichkeiten zu Beginn erschlagen.
  • Nicht alle Features sind durch Plugins abgedeckt. Eigene Wünsche müssen unter Umständen selbst programmiert werden. Dazu braucht es neben entsprechenden Kenntnissen von PHP auch eine Einarbeitung in fremden Quellcode.
  • Je nach CMS sind die Ansprüche an den Webspace höher. Nicht jedes CMS läuft bei jedem 0815-Hoster.

Selbstprogrammierte Seiten

Mit dem Schreiben von eigenen Seiten haben wohl die meisten begonnen. Der größte Vorteil ist hier zugleich auch der größte Nachteil: Es steht jedem frei, wie er programmiert. Das beinhaltet leider auch oft Fehler und Sicherheitslücken.

Vorteile

  • Es ist einem völlig freigestellt, zu programmieren, wie man möchte.
  • Eine Einarbeitung in fremden Quellcode oder eine fremde API ist nicht notwendig.
  • Es müssen keine Patches eingespielt werden und man läuft nicht in Gefahr, wegen ausgelassener Updates Ziel eines Angriffs zu werden.

Nachteile

  • Alles muss selbst implementiert werden, das kostet Zeit.
  • Fehler und Sicherheitslücken werden leicht übersehen.

Framework

Das Programmieren einer Webseite mit einem Framework als Grundlage ist quasi die Königsdisziplin. Nirgendwo sonst sind die Anforderungen an den Programmierer so hoch wie hier und die Lernkurve so steil. Entsprechend sind auch die Vorteile: Man genießt maximale Flexibilität (sogar mehr als wenn man alles selbst programmiert!) und bekommt viele Features mitgeliefert.

Vorteile

  • Die Lösungen für viele Probleme werden einem abgenommen.
  • Ein gutes Framework lässt sich einfach erweitern und gewährt maximale Flexibilität.
  • Alles ist umsetzbar.

Nachteile

  • Viele Features sind vorgefertigt dabei. Im Gegensatz zu einem CMS muss man sie aber selbst zu einer Seite zusammenbauen und mit eigenem Code ergänzen.
  • Die Lernkurve ist oft ziemlich steil. Zudem werden gute Kenntnisse in objektorientierter Programmierung benötigt.
  • Frameworks benötigen oft mehr Power als eine vollständig selbstprogrammierte Seite. Ein Bytecode-Cache wie APC ist fast schon eine Pflicht. Das kostet.

Im Vergleich

Für wen eignet denn nun was? Will man als Anfänger direkt produktiv tätig sein, bleibt nur der Griff zum CMS. Meist kommt man mit den vorgefertigten Plugins aus und erhält so schnell eine funktionsfähige Seite. Steht jedoch der Lerneffekt mehr im Vordergrund, sollte man die Seite selbst schreiben. Es dauert zwar länger und man macht wahrscheinlich viele Fehler, aber solange nur das Verbessern der eigenen Fähigkeiten im Vordergrund steht, ist das nicht schlimm. Mit der Zeit kann man auch sein eigenes Framework oder CMS entwickeln, eine Gute Übung ist das allemal.

Spätestens, wenn man produktiv arbeiten möchte, sollte man sämtliche Eigenentwicklungen wegschmeißen. Sie eignen sich zwar prima zum Lernen, beinhalten aber auch mehr Fehler und Sicherheitslücken und sind weniger gut durchdacht als die meisten fertigen Lösungen. Je nach eigenem Kenntnisstand und der Art des Projektes muss man sich nun entscheiden, wie es weitergehen soll.

Wer eine Standardanwendung entwickeln möchte, fährt am besten mit einem CMS. Das meiste lässt sich schnell zusammen klicken und eventuelle Anpassungen lassen sich leicht vornehmen. Viele CMS haben mittlerweile auch ihr eigenes Framework, das zwar nicht an Frameworks wie Symphony oder das Zend Framework herankommen, aber für die meisten individuellen Anpassungen ausreicht.

Je mehr der gewünschten Features bei einem CMS nicht abgedeckt sind, umso eher ist das Framework die richtige Wahl. Die meisten PHP-Frameworks bringen heutzutage alles mit, was man benötigt, um recht schnell eine funktionierende Webseite zu entwerfen. Zudem sind sie den hauseigenen Frameworks der CMS oft weit überlegen. Aber Achtung: Die Flexibilität die einen ein Framework bietet, kann auch schnell zur Falle werden. Denn oft müssen wichtige Design-Entscheidungen vom Programmierer getroffen werden. Eventuelle Fehler können dann sehr teuer werden.

Fazit

Für die meisten Projekte ist das CMS die optimale Wahl. Eine große Community und eine gute Dokumentation helfen sowohl Anfängern als auch Fortgeschrittenen. Für Projekte abseits des Normalen und echte Profis mit Erfahrung in OOP bietet sich aber auch das Framework an, um schnell zum gewünschten Ziel zu kommen. Alles selbst zu programmieren ist jedenfalls (außer zum Lernen) nicht mehr zeitgemäß und alles andere als produktiv.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *