Welches CMS ist besser für VPS: Joomla oder Drupal
Wer mit dem Gedanken spielt, eine Website oder einen Blog zu erstellen, wird mit Sicherheit mit der Wahl eines Website-Content-Management-Systems konfrontiert werden. Die Ressourcen, auf die der Inhaber des künftigen Webportals stoßen wird, wenn er sich mit den gängigen CMS vertraut macht, bieten eine vergleichende Analyse für Webmaster und normale Benutzer. Aber nur wenige finden Informationen darüber, welches System für Entwickler besser ist. In diesem Artikel werden wir einen tiefen Einblick in die Funktionen von zwei CMS nehmen – Joomla und Drupal. Wir werden einen technischen Vergleich der Systeme vornehmen, ihre Merkmale betrachten und die unterschiedlichen Ansätze bei der Code-Implementierung verstehen.
Bequemes Arbeiten im CMS Joomla und Drupal
Jedes Content-Management-System beginnt mit der Benutzerfreundlichkeit. Dazu gehören der einfache Einstieg, die Lernkurve und natürlich die Benutzeroberfläche.
Wenn wir über Joomla und Drupal sprechen – beide CMS sind auf Programmierer ausgerichtet und erfordern Kenntnisse in HTML und PHP. Blogs, die sich mit Content-Management-Systemen befassen, folgen der gleichen Überzeugung: Das einfachste und benutzerfreundlichste CMS ist WordPress, das schwerste ist Drupal.
Bei der Umsetzung komplexer Projekte hat Drupal aufgrund der großen Anzahl von Modulen den Vorrang, WordPress ist das am wenigsten geeignete System für die Erstellung komplexer Webseiten. Joomla ist eine Art "goldene Mitte" in diesen Kategorien, und wenn man die Systeme im Auftrag des Webmasters vergleicht, ist diese Schlussfolgerung richtig.
Websites in Drupal werden mit zwei Werkzeugen erstellt – Ansichten und Blöcke. Der Webmaster hat mehr Flexibilität bei der Erstellung komplexer Seiten. Er muss keine Kenntnisse über die Programmierung von Modulen haben.
Was Joomla betrifft, so bietet das System ähnliche Toolkits (in der Dokumentation als Komponenten bezeichnet), ist aber ohne Fachkenntnisse schwer zu bedienen. Wenn Sie ohne Entwicklungskenntnisse schnell eine umfassende Seite erstellen möchten, ist Drupal die beste Wahl.
Die Erstellung spezieller kundenspezifischer Funktionen ist jedoch eine andere Sache. Eine modulare Benutzeroberfläche und eine flexible Verwaltung der Inhalte reichen nicht mehr aus. Ohne zusätzliche Software bleibt jede Website unoptimiert, schwerfällig und umständlich, und die verfügbaren Module sind nicht immer responsiv.
Obwohl Drupal dem Webmaster flexible Werkzeuge zur Seitenerstellung zur Verfügung stellt, bleibt die Verwaltung mit diesem CMS komplex und hat eine steile Lernkurve. Die Benutzer müssen nicht nur einen Webmaster einstellen, sondern auch einen Entwickler, der Drupal aktiv nutzt. Ein normaler Benutzer braucht viel mehr Zeit, um Drupal zu erlernen, als wenn er sich mit Joomla beschäftigt hätte. Die Drupal-Konsole ist für unerfahrene Entwickler weniger freundlich als die Joomla-Tools.
Wenn ein Entwickler den Quellcode einer in Drupal geschriebenen Seite öffnet, wird das Parsen und Verstehen der Vorgänge große Schwierigkeiten verursachen. Die Einrichtung von Drupal ist nicht einfach, da das System eine schlecht strukturierte Schnittstelle verwendet. Joomla hingegen verwendet ein objektorientiertes Framework, das dem MVC-Muster folgt. Es ist eine große Anzahl von Vorlagen integriert, wie z. B. der praktische Listener, um nur einige zu nennen.
Ein kompetenter Entwickler, der mit Drupal vertraut ist (dessen Kosten viel höher sind), wird dem Kunden das Risiko nicht ersparen, dass die Website ein strukturloses verzweigtes System mit vielen Abhängigkeiten und Ausnahmen ist. Dies führt zu vielen Problemen in der Zukunft, wenn Änderungen vorgenommen werden müssen, die im aktuellen System nicht möglich sind, da andere Funktionen zwangsläufig nicht mehr funktionieren.
Joomla und Drupal haben gemeinsame Merkmale
Um die Unterschiede zwischen Joomla und Drupal zu betrachten, lassen Sie uns ihre Funktionsweise in 5 Kategorien aufschlüsseln. Wir werden Gemeinsamkeiten und unterschiedliche Ansätze bei der Implementierung der Tools ermitteln und verstehen, welches Content-Management-System den Anforderungen der Entwickler entspricht.
Speicherung in der Datenbank
Betrachten Sie, wie Drupal Informationen vom Server verwaltet:
- Die CMS-Ansichten (Anzeige der CMS-Inhalte) befinden sich in der Datenbank. Der Benutzer kann kein Versionskontrollsystem einrichten. Programmierer haben nicht die Möglichkeit, diese Ansichten mitzugestalten.
- Wenn neue Inhalte in Drupal erscheinen, werden sie Teil der Tabellen in der Datenbank. Die Ansicht der Datenbank ändert sich, wenn neue Inhalte erstellt werden. Das bedeutet, dass es keine feste Anzahl von Tabellen in der Datenbank gibt. Wenn ein Programmierer eine Webanwendung erstellen und ihr ein Entity-Relationship-Modell hinzufügen möchte, kann er dies nicht tun. ERD erfordert eine statische Anzahl von Tabellen im Diagramm, die sich aufgrund der Datenbankstruktur dynamisch ändern.
- Moderne CMS speichern Logs in Dateien, Drupal speichert Logdaten in einer Datenbank. Die Speicherung von Protokollen in einer Datenbank erschwert den Zugriff und damit die Erstellung von Profilen und Analysen. Um die Logs der Website in Drupal zu analysieren, kann der Entwickler nicht die üblichen Linux-Befehle verwenden. Die Werkzeuge sed, awk, cut, cat werden ihm nicht zur Verfügung stehen.
- Das Speichern von Datenbanken ist viel langsamer und die Daten selbst benötigen viel mehr Speicherplatz. Dies bläht die Datenbank unnötig auf und macht sie ineffizient. Bei Ressourcen mit hohem Verkehrsaufkommen wird eine Protokollanalyse fast unmöglich. Außerdem ist es bei diesem System nicht möglich, Protokolle zu rotieren und alte Protokolle zu archivieren.
Moderne Entwurfsmuster
Zunächst einmal müssen Sie die beiden CMS-Ansätze für die Codeerstellung definieren. Joomla ist ein objektorientiertes System. Was den Drupal-Code anbelangt, so verwenden viele Tools prozedurales PHP, obwohl es eine ähnliche Kodierungsmethode verwendet.
Vor Drupal 9 implementierte das CMS zwei alte Entwurfsmuster, die in der Programmiergemeinschaft als schlecht angesehen werden:
- der prozedurale Ansatz ist schlecht organisierter Code, er ist "unlesbar" und schwer zu verstehen;
- Hooking oder Hijacking – die Fähigkeit, Maßnahmen zu ergreifen, wenn ein "Inhaltsknoten" bereits erstellt wurde.
Was Joomla betrifft, so verwendet das System neue Designvorlagen:
- MVC-Programmiervorlage (Model, View, Controller);
- Ereignisgesteuerte Programmierung;
- das Verhaltensmuster des Beobachters (Beobachter);
- objektorientierter Ansatz (d.h. polymorph, mit Kapselung, Vererbung)
- die Erzeugung der Singleton-Vorlage;
- ObjectFactory-Schnittstelle.
Diese Muster verwenden die beliebten Frameworks Symfony2 und Zend. Das Database Abstraction Layer (abgekürzt DBAL) Design Pattern ist besser in Joomla integriert. Wenn ein Entwickler ein vollwertiges ORM benötigt, kann Joomla Doctrine verwenden.
Die Einführung moderner Programmierpraktiken in Joomla ist das Ergebnis einer kontinuierlichen Verbesserung des CMS, während Drupal mit einer Verzögerung von mehreren Jahren aktualisiert wird. Die Entwicklung von Joomla wird durch eine aktive Joomla-Community ermöglicht.

CMS-Architektur
Joomla hat eine sehr übersichtliche und gut gestaltete API. Drupal ist in einem unverständlichen Code mit schlechter Strukturierung geschrieben. Wenn Sie eine Analogie ziehen, ähnelt die Architektur von Joomla einem Weihnachtsbaum. Drupal kann mit einem Molekül namens Buckyball verglichen werden.
Dem Joomla-Entwickler steht eine hierarchische "Baumstruktur" zur Verfügung. Der Hauptstamm ist der Joomla Core. Am Stamm befinden sich große Zweige (APIs), an die kleinere Zweige (Komponenten und Widgets) angehängt sind. An den Zweigen befinden sich die Blätter (Widgets, Module). Zusätzliche Komponenten können leicht angebracht werden.
Es ist möglich, Artikel-Management-Funktionen, die Vorteile von Joomla Sicherheits-Tools (Zugang und Kontrolle Ebenen) zu verwenden. Es gibt Unterkomponenten, die sich in Komponenten befinden, es ist möglich, einen Pfad zu einem anderen Zweig zu erstellen. Im Allgemeinen haben die Zweigstellen jedoch kaum Kontakt zueinander.
Die Drupal-Architektur ist wie ein kugelförmiges Objekt mit vielen Punkten auf der Oberfläche, die Module genannt werden. Jede Erweiterung kann mit jedem der erstellten Module verbunden werden. Das heißt, aufgrund der engen Integration interagieren alle Komponenten miteinander. Diese Struktur ist schwer zu verstehen. Jede zusätzliche Funktion wird die Qualität des Codes noch weiter verschlechtern. In den neuen Versionen hat Drupal das Hooking abgeschafft, was die Arbeit mit dem Code spürbar vereinfacht.
Geschwindigkeit des Betriebs
Um eine einfache Seite zu lesen, benötigt Drupal etwa 100 Abfragen. CMS Joomla ist leichter und optimierter, das Kernsystem ist viel schneller. Der Mindestspeicher für Joomla beträgt 512 MB, Drupal benötigt mindestens 2 GB.
Um die Leistung von Ressourcen mit hohem Datenverkehr und umfangreichen Datenbanken zu verbessern, verwendet Drupal Solr. Für Joomla wird Sphinx bereitgestellt, dieses Tool ist in nativem C++-Code geschrieben. Das Tool ist viel einfacher und schneller. Gleichzeitig muss der Programmierer für die meisten Ressourcen kein Sphinx hinzufügen. Die Leistung von Joomla ist ausreichend, um schnell zu arbeiten.
Joomla kann einen hohen Datenverkehr bewältigen und bei hoher Belastung schnell auf die Datenbank zugreifen. Sphinx wird verwendet, wenn eine erhebliche Leistungssteigerung erforderlich ist. Eine Kombination aus Drupal und Solr ist nicht in der Lage, mit Joomla zu konkurrieren.
Dies ist ein deutliches Indiz dafür, dass Joomla entgegen der landläufigen Meinung für die Entwicklung großer und komplexer Webressourcen weit besser geeignet ist als Drupal.
Daten-Caching
Die meisten Benchmarks sind sich einig, dass Joomla schneller ist und weniger Ressourcen verbraucht, wenn kein Caching verwendet wird. Gleichzeitig sind Drupal-Websites schneller, wenn der Cache aktiviert ist. In der Praxis wird die richtige Konfiguration des Cache in Joomla Drupal in Bezug auf die Leistung übertreffen. Darüber hinaus verbraucht der Cache von Joomla weniger Ressourcen als der Cache von Drupal.
Das Versprechen von Drupal und Joomla
Ein Argument für die Wahl von Joomla gegenüber Drupal ist linux.com. Die Entwickler, die an dieser Website arbeiten, sind für ihre Besessenheit von der Codequalität bekannt. Sie sind Vorbilder für andere Programmierer.
Die Mitglieder der Linux Foundation bewerteten Joomla mit 5, während Drupal nur 3 Sterne erhielt. Dan Lopez, Web-Architekt für linux.com, sagte in einem Interview, dass er sich für Joomla entschieden hat. Obwohl viele Websites der US-Regierung mit Drupal erstellt werden, spricht die Tatsache, dass die wichtigste Linux-Website Joomla verwendet, für Letzteres.
Verglichen mit der Gemeinschaft der Open-Source-Entwickler von Drupal ist die Gemeinschaft, die Joomla unterstützt, um ein Vielfaches größer. Das heißt, die Programmierer wählen ein System, das leichter zu verstehen, benutzerfreundlich und leichtgewichtig ist.
Aus geschäftlicher Sicht haben Unternehmen, die sich für Drupal entscheiden, Schwierigkeiten, Spezialisten zu finden. Es gibt viel weniger hochwertige und erfahrene Entwickler für dieses CMS, und ihre Dienste sind teurer als die von Joomla-Programmierern. Die meisten Entwickler ziehen es vor, Code in Joomla zu schreiben. Sie lehnen oft Anfragen ab, die mit Drupal zu tun haben.
Die Zukunft von Drupal
Drupal 9, das im Jahr 2020 veröffentlicht wird, hat seit Drupal 7 und Drupal 8 nicht viele Probleme gelöst. Das Content-Management-System hat durch die Einführung des Symfony2-Frameworks und des Twig 2-Template-Compilers gewonnen, aber die komplexe Codestruktur ist nicht verschwunden. Ein Teil der CMS-Tools verwenden einen objektorientierten Ansatz, das System losgeworden Hooking, aber Drupal hat die prozedurale Methode nicht vollständig aufgegeben.
Ein weiteres Problem ist die Abwärtskompatibilität. Eine Website mit Drupal 7 (das im Jahr 2023 ausläuft) kann nicht schnell auf Drupal 9 migriert werden. Bei Drupal 8 gibt es einen Deprecation-Mechanismus (bei dem veraltete Funktionen aus dem Kern entfernt werden), der die Vererbung bei der Migration auf die neue Version leicht verbessert.
Anstelle einer Schlussfolgerung
Sowohl Joomla als auch Drupal sind gut genug, um jedes Projekt umzusetzen. In diesem Fall spielt die Komplexität der Website keine Rolle, jedes System ist in der Lage, alle Anforderungen zu erfüllen. Joomla hat eine höhere Priorität wegen der schnellen Einführung neuer Funktionen, der Verwendung von strukturiertem und klarem Code, dem Hinzufügen von Funktionen ohne das Risiko, das gesamte System zu "brechen". Drupal holt allmählich zu Joomla auf, aber es lässt sich nicht sagen, wann diese CMS in Bezug auf Geschwindigkeit und Einfachheit für den Entwickler gleich sind.