Der Core soll schlanker werden!

In der CMS Beratung kommt aktuell die Frage auf, ob die Backup-Funktion als Plugin kommen oder in den Core soll. Ich persönlich bin für das Plugin und da meine Begründung etwas länger wird, habe ich daraus einen Blog-Beitrag gemacht.

In welche Richtung ich ContentLion leiten möchte

Ihr erinnert euch mit Sicherheit alle an die Anfänge von ContentLion – Jeder Schritt wurde zusammen mit den Usern im CMS Tutorial erstellt. Das habe ich aus dem Grund gemacht, dass jeder an dem Projekt mitwirken kann, egal wie viel Zeit er dafür opfern möchte. Diese Art der Entwicklung ist auch weiterhin mein Ziel.

Wenn wir mal größer werden, wird es schwierig, wirklich viele Entwickler am Core mitwirken zu lassen. Denn so steigert sich der Aufwand für das Controlling und die Absprachen untereinander sehr stark.  Aus diesem Grund möchte ich dem Core so klein wie möglich halten, damit ihr in Eigenverantwortung auch wichtige Teile des CMS selbst leiten könnt. Dies geht am besten mit eigenen Plugins, da der Code komplett getrennt und der eigene Bereich klar definiert ist. Absprachen sind keine erforderlich, ihr könnte einfach drauf los programmieren.

Viele kleine Plugin = Bessere Zusammenarbeit

Wer sich einmal andere CMS ansieht, wird feststellen, dass dessen Plugins meistens nur den Core ansteuern. Aus diesem Grund gibt es dort viele Plugins, die im Prinzip alle das gleiche machen. Was für den Endbenutzer schlecht dabei ist: Er kann nicht sagen, dass er eine Funktion des einen Plugins will, aber auch eine Funktion des anderen. Entweder oder.

Weft doch mal einen Blick in unsere Doku. Unter Plugin erstellen werden dort verschiedene Plugin-Typen vorgestellt. Zusammengefasst gibt es Plugins, die nur die Daten bereitstellen und andere die z.B. die Daten auf der Oberfläche anzeigen.

Wenn wir uns an diesen Aufbau halten, können die Plugins sehr gut aufeinander aufbauen. Die letztendliche Installation wird, wenn es denn mal fertig ist, innerhalb von ContentLion laufen. Man kann sofort alle benötigten Plugins mitladen. Zusätzlich können wir es so machen, dass man auch optionale Plugins erwähnt, mit denen das eigene Plugin interagieren kann.

Leichtere Anpassbarkeit für den Endbenutzer

Ein weiterer Grund für die Gründung eines CMS war es, selbst bestimmen zu können, wie die eigene Seite funktioniert. Ich passe auf meinen Seiten alles immer sehr stark an. Allerdings ändere ich ungerne etwas am Core – Denn beim nächsten Update können meine Änderungen schon wieder weg sein.

Durch ein sehr modales System kann ich einfach selbst ein kleines Plugin schreiben, was die vorhandenen Plugins um die meine Wunsch-Funktionen erweitert oder gar ersetzt. Wenn wir nur große Plugins, oder alles im Core haben, ist dies nicht so leicht möglich.

Und jetzt zur Überschrift

Auf langer Sicht möchte ich den Core sehr stark abspecken. Wenn das Plugin-System erstmal bis zum Ende steht, würde ich einige Funktionen aus dem Core in Plugins verschieben. So profitieren wir bereits von den Vorteilen.

Mein persönlicher Wunsch wäre es am Ende quasi nur noch das Plugin-System, ohne Datenbankzugriff, ohne Installer und Co zu haben. Der User soll sich dann in einem Wizard nach und nach seine Seite so erstellen wie er möchte.

Deine Meinung ist mir wichtig!

Als Daniel wollte, dass die Backup-Funktion in den Core soll, habe ich nicht sofort nein gesagt. Ich möchte, dass wir dies zusammen entscheiden. Sollten sich genug Leute finden, die nicht meiner Meinung sind, können wir die Funktion auch in den Core machen. Nur möchte ich, dass ihr eure Entscheidung vorher gut überlegt.  Wollen wir mit unserer eigenen Struktur auftreten, oder einfach alles so machen wie die anderen?

Zum Foren-Thread der Diskussion

Dieser Beitrag wurde unter Diksussion veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Eine Antwort auf Der Core soll schlanker werden!

  1. JuKu sagt:

    Ich würde die Backup-Funktion als Plugin realisieren. ;)

Hinterlasse einen Kommentar zu JuKu Antworten abbrechen

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

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>