Contao-News

Wir informieren Dich hier regelmäßig zu Updates, stellen Best-Practice-Arbeiten vor und berichten über Aktuelles aus dem Contaoversum.

Informationen zum Contao Manager

von Yanick Witschi – Aktuelles

TL;DR

Contao wird eine grafische Oberfläche namens "Contao Manager" erhalten, welche den Betrieb von Contao 4 im "managed" Modus erlaubt. Dieses Vorgehen wird es ermöglichen, per Klick eine Contao 4-Installation aufzusetzen, Pakete (Erweiterungen) zu verwalten und in Zukunft auch Wartungsarbeiten, wie z.B. Caches leeren, auszuführen oder Systemeinstellungen zu ändern.

Ein Teil des erheblichen Entwicklungsaufwands wird durch die Contao Association getragen. Du kannst mithelfen, indem du dort Mitglied wirst.

Einführung

Unter dem Codenamen "Contao Manager" verstehen wir die geplante grafische Oberfläche, die unter anderem die Installation von Contao 4, Verwaltung von Composer-Paketen aber auch Wartungsaufgaben übernehmen soll. "Contao Manager" ist der endgültige Name. Andere Bezeichnungen, die in der Community herumgeistern, sind etwa:

  • Tenside
  • Package Manager
  • Composer Manager

Warum dieser Beitrag?

Auf der vergangenen Contao Konferenz 2016 in Bad-Honnef kam folgende Frage auf:

Wann wird es denn möglich sein, Contao 4 genau so einfach zu installieren, wie Contao 3.5?

Zum Zeitpunkt der Konferenz waren wir uns über die Umsetzung nicht ganz einig und hatten noch einige offene Punkte zu besprechen. Eine Lösung auf der Konferenz zu kommunizieren, die dann in dieser Form nicht möglich ist, hielten wir für schlechter, als das Thema erst mal komplett außen vor zu lassen.

Jetzt ist die Zeit für einen umfassenden Blogbeitrag auf contao.org gekommen.

First things first

Einige sehr wichtige Aussagen müssen an dieser Stelle festgehalten werden, von denen wir denken, dass sie vor lauter Diskussionen rund um Composer und die Kommandozeile scheinbar untergegangen sind:

  • Contao 4 ist für den produktiven Einsatz absolut geeignet! Wir haben Kenntnis von etlichen Installationen die den Nutzern grosse Freude bereiten. Wir sind überzeugt: Contao 4.2 ist die beste Contao Version, die wir je hatten!

  • Das Composer Plugin wurde im Februar veröffentlicht, so dass seither Extensions sowohl für Contao 3.5 als auch für Contao 4 installiert werden können. Das Plugin bringt Composer unter anderem bei, in einer Contao 3.5-Umgebung gewisse Dateien nach system/modules zu kopieren etc.

  • Der Aufwand, eine Contao 3.5-Extension kompatibel zu Contao 4 zu machen, ist minimal.

  • Kurz: Alles was in Contao 3.5 möglich ist, ist mit Contao 4 schon seit längerer Zeit möglich. Die verbleibenden Stolpersteine sind:

    • a) die Entwickler, die ihre Erweiterungen unter Contao 4 testen und freigeben müssen und
    • b) die fehlende GUI für die reinen Anwender

Was ist geplant?

Vor mittlerweile fast einem Jahr haben wir angefangen, uns intensiver mit dem Contao Manager zu befassen. Wir haben einige Versuche (sog. Proof of Concepts) gewagt und wieder verworfen. Das Hauptproblem dabei lag wohl an dem Ziel, das wir uns initial selber gesetzt hatten:

Wir wollten den Entwicklern die volle Power einer Symfony-Applikation geben, ohne die reinen Anwender dabei mit der Komplexität von Symfony zu konfrontieren.

In allen bisherigen Ansätzen haben wir deshalb immer versucht, eine grafische Oberfläche für die Bedienung einer Symfony-Applikation zu bauen. Mittlerweile sind wir aber an dem Punkt angelangt, an dem wir mit Sicherheit sagen können: Dieses Vorhaben wird nicht funktionieren.

Die Gründe dafür sind vielseitig, aber um es kurz zusammenzufassen: Symfony arbeitet mit etlichen Kommandozeilenbefehlen, mit YAML, XML und PHP-Konfigurationsdateien, verschiedenen Environments und vielem mehr. Dinge, die der Entwickler haben will, der reine Anwender aber niemals verstehen wird und auch nicht muss. Wir können nicht die volle Power von Symfony in eine GUI packen, ohne dabei den reinen Anwender zu überfordern, das ist schlichtweg utopisch.

Kurz: Wir werden mit ein- und derselben Applikation niemals beide Zielgruppen zufrieden stellen können.

Contao erhält zwei Betriebsmodi

In Zukunft wird es deshalb zwei verschiedene Betriebsmodi von Contao geben.

Betriebsmodus "Symfony-Applikation"

Dieser Betriebsmodus spiegelt den aktuellen Zustand von Contao 4 wider. Die Verzeichnisstruktur basiert auf der von symfony/symfony-standard (bzw. contao/standard-edition). Verwaltet wird alles komplett auf Kommandozeile und mit den gewohnten Konfigurationsdateien von Symfony. Die Entwickler verwalten ihren AppKernel samt Ladereihenfolge der Bundles etc. komplett selbst und sind auch selbst dafür verantwortlich. Für diesen Betriebsmodus wird es keine grafische Unterstützung geben. Der Contao Manager ist für diesen Betriebsmodus völlig irrelevant. Symfony ist die Applikation. Contao einfach nur ein Bundle.

Zielgruppe: Symfony-Entwickler

Einsatzzweck: Applikationen mit grösserem Individualentwicklungsbedarf, Plattformen mit Continuous Integration und Deployments etc.

Betriebsmodus "Contao-Applikation"

Dieser Betriebsmodus wird neu hinzukommen. Selbstverständlich befindet sich unter der Haube immer noch die Architektur einer Symfony-Applikation, aber manuelle Anpassungen an Konfigurationsdateien, der AppKernel.php oder den Entry-Points (app.php, app_dev.php) etc. werden nicht unterstützt, da diese durch den Contao Manager verwaltet werden. Alle Anpassungen müssen somit zwingend im Contao Manager vorgenommen werden. Man könnte auch von einem "managed" Betriebsmodus sprechen. Contao ist die Applikation. Reine Anwender müssen sich somit mit keinen Symfony-spezifischen Begrifflichkeiten auseinandersetzen.

Zielgruppe: Anwender, aber auch genauso Symfony-Entwickler (siehe Einsatzzweck)

Einsatzzweck: Normale Webseiten mit regulären Erweiterungen ohne grosse individuellen Anpassungen; wohl aber kleinere Anpassungen an den Ressourcen (dcaconfig.php etc.), jedoch ohne Integration von reinen Symfony-Bundles.

Funktionsweise des Contao Managers

Die exakten Details stehen noch nicht fest, aber hier ist ein Grobabriss über die Funktionsweise.

  1. Die Installation einer neuen Contao Applikation erfordert den Upload der contao-manager.phar auf den Webspace in das /web Verzeichnis (sprich typischerweise httpdocs/web oder public_html/web).

  2. Der Startpunkt, auf die die Domain zeigt (der sog. DirectoryIndex), muss auf /web geändert werden.

  3. Somit wird der Contao Manager über www.domain.tld/contao-manager.phar erreichbar.

  4. Ab hier übernimmt der Contao Manager. Man erstellt einen Benutzer für den Contao Manager selbst und klickt auf installieren, womit der Contao Manager die aktuellste Version im Hintergrund herunterlädt und um sich selbst herum aufbaut.

  5. Danach kann die Applikation via Contao Manager verwaltet werden.

In einem ersten Schritt werden wir die Installation und die Verwaltung der Pakete erlauben. Danach sollen Konfiguration der Applikation und Wartungsaufgaben dazu kommen. Drittentwickler werden ebenfalls Konfigurationsmöglichkeiten oder Wartungsjobs für ihre eigenen Pakete zur Verfügung stellen wollen und wir werden uns deshalb einen Weg überlegen müssen, wie diese Pakete möglichst einfach von aussen in den Contao Manager integriert werden können. Denkansätze (und wiederum Proof of Concepts) dafür gibt es bereits.

Somit ist auch klar, dass die Menüpunkte "Systemeinstellungen" und "Systemwartung" im Contao Backend nach und nach verschwinden und ihren Weg in den Contao Manager finden werden.

Roadmap für den Contao Manager

Der Entwicklungsaufwand für den Contao Manager ist hoch und bedeutet eine erhebliche Belastung für das Contao Core-Entwicklerteam. Bis dato wurden ca. 300 Mannstunden investiert, viele davon vorbereitend in Proof of Concepts. Wir sind uns der Bedeutung des Contao Managers für Contao und die Community bewusst und wir hätten das Produkt lieber gestern als heute fertig, müssen aber gleichzeitig auch schauen, dass wir unsere eigenen Projekte gestemmt kriegen. Die Contao Association bietet uns finanzielle Unterstützung wofür wir sehr dankbar sind.

Im Moment sieht die Roadmap wie folgt aus:

  • November 2016 (mit Contao 4.3): Version 1 des Contao Managers ist fertig. Mit ihm wird es möglich sein, Contao und Erweiterungen dazu zu installieren.
  • Spätestens Mai 2017 (mit Contao 4.4 - erste LTS-Version der 4er-Reihe): Drittentwickler können mit einer Konfigurationsdatei o.ä. in ihrem Paket definieren, welche Einstellungsmöglichkeiten der Contao Manager für ihr Paket darstellen soll. Ebenfalls integrierbar werden Wartungsjobs.

Ergänzung 01.07.2016

Kann zwischen den zwei Betriebsmodi umgestellt werden?

  • Contao Manager -> Symfony Applikation: Eine Umstellung vom Contao Manager auf eine Symfony Applikation kann jederzeit problemlos durchgeführt werden. Die Architektur sowie die Datenbankstruktur sind völlig identisch. Nur die Konfiguration und Wartung der Applikation unterscheidet sich.

  • Symfony Applikation -> Contao Manager: Die Bedingung für einen Wechsel zurück zum Contao Manager ist, dass alle verwendeten Pakete vom Contao Manager behandelt werden können. Wurden reine Symfony Bundles ohne Unterstützung für den Contao Manager verwendet, ist ein Wechsel nicht möglich.

Kurz: Beide Wege sind unter den richtigen Voraussetzungen möglich, erfordern aber das Wissen eines Symfony-Entwicklers.

Alle News anzeigen

Kommentare

Kommentar von Andreas |

Vielen Dank für Euren Einsatz und die Info zum Stand der Dinge!

Kommentar von Matthias |

Das klingt doch nach einem super Plan. Danke für die vielen Infos. In dieser Phase sehr wichtig. Es wird viel diskutiert über die Hürde aller Hürden zur besten Contao Version aller Zeiten. Jetzt herrscht Klarheit und wir können mit gutem Gefühl beginnen uns der schönen neuen Welt zu widmen. Danke.

Kommentar von Christian |

Ich finde man kann nicht oft genug betonen, dass die Entwicklung von Contao und dazugehöriger Tools enorm viel Aufwand und (Frei)Zeit in Anspruch nimmt. Das wird leider sehr oft vergessen.

Vielen Dank für den ausführlichen Beitrag und Euren großartigen Einsatz. Ihr schafft das!

Kommentar von Andreas |

Vielen Dank für euren Einsatz.
Contao ist ein großartiges System!

Kommentar von Marcel |

Auch von hier ein dickes Lob für den Ausblick und die bisher geleistete Arbeit! Es ist schön zu sehen, dass Contao nach wie vor die Bedienerfreundlichkeit im Blick behält und bei der Umsetzung neuer Techniken auch versucht weniger versierte Bediener mitzunehmen, ohne die Poweruser zu stark einzuschränken.

Kommentar von werner |

WOW! Vielen Dank für Euren unermüdlichen Einsatz!

Kommentar von peter |

1000 dank für den super einsatz u die info! contao ist das geilste cms der welt!

Kommentar von Fruchuxs |

> Der Startpunkt, auf die die Domain zeigt (der sog. DirectoryIndex), muss auf /web geändert werden.

Ist das auf shared Hosts, aka simplen Webspaces, ohne weiteres möglich? Ich meine nämlich nicht.

Antwort von Yanick Witschi

Bei den meisten Anbietern ist das absolut kein Problem. Sollte es bei einem Hoster nicht möglich sein, so erfüllt dieser schlichtweg die Anforderungen von Contao nicht (analog Mindestanforderungen bei der PHP-Version, MySQL-Version etc.).

Kommentar von Michael |

Das ist sehr interessant und ist ein guter Weg verschiedene Bedürfnisse abzudecken. Besten Dank für Eure Arbeit!

Kommentar von Jan-Peter Braun |

Danke für die Entwicklung!

Kommentar von Thomas Wolf |

Finde großartig, was ihr da auf die Beine stellt! Vielen Dank schon einmal für die sicher oft nicht leichte und umfangreiche Arbeit! :)

Kommentar von Jan-Peter Braun |

Nach der "Roadmap für den Contao Manager" sollte die Version 1.0 im November mit Contao 4.3 veröffentlicht werden. Ich gehe davon aus, dass der Termin verschoben wurde. Kann im Laufe des Q1/2017 mit einer Veröffentlichung gerechnet werden?

Antwort von Yanick Witschi

Hallo Jan-Peter, wir treffen uns in ca. 2 Wochen zum Entwicklertreff und werden das weitere Vorgehen da besprechen.

Kommentar von Anke |

Das sind wunderbare Nachrichten, nachdem man langsam ein Gefühl einschlich, dass C4 womöglich nur noch für Agenturen geeignet sei und nicht mehr für freelancende Designer und Laien. Dass Contao in technologischer Hinsicht immer ganz vorne mit dabei ist, hat mich schon immer fasziniert. Vielleicht kommt dann ja auch mal eine Zeit, in der vornehmlich an die weitere Optimierung der Usability gedacht wird, denn auch da gibt es sicher noch Verbesserungswürdiges.

Einen Kommentar schreiben

Bitte addieren Sie 9 und 1.