15.05.09
Symphony-CMS
Manchmal braucht man gar nicht vom Teufel zu sprechen, es reicht, wenn man an ihn denkt.
Ich dachte mir schon vor etwas längerer Zeit, dass mit XSLT eine schon perfekte Template-Engine für Content-Management-Systeme geschaffen wurde. Viele CMS benutzen Smarty oder lassen den Entwickler auch die PHP-Funktionen direkt reinhauen. Die an XML angelehnte Version von Textpattern kam meinem Ideal schon recht nahe.
Vor kurzem bin ich dank eines Tweets von Manuela Hoffmann (die mir seit ca. drei Monaten eine Antwort auf eine E-Mail schuldig ist) auf das Symphony-CMS gestoßen.
Das erste, was mir auf der Startseite sofort ins Auge sprang, war die Unterüberschrift »Open source XSLT content management system«. Ich hatte vielleicht gefunden, was ich lange gesucht hatte.
Und tatsächlich hat mich das System bisher sogar positiv überrascht. XSLT ist wirklich perfekt eingesetzt und das Backend von Symphony wirkt zwar etwas steril, dafür findet man sich aber auf Anhieb zurecht.
Wenn man keine Grundkenntnisse im Umgang mit XSLT hat, wird der Einstieg sicherlich etwas schwer. Mit dem Tutorial von w3schools hat man sich aber schnell in die Materie eingefuchst.
Abgesehen davon, dass ich XML, XSL und XPath persönlich sehr cool finde, gibt es noch andere überzeugende Argumente für den Einsatz dieser Markup-Languages als Template-Sprachen.
Zum einen sind XSLT-Dateien selbst in XML-Form geschrieben. Das bedeutet, man könnte (wieder mithilfe von XSLT) diese Templates, die man schon für Symphony geschrieben hatte, in andere Template-Sprachen wie Smarty transformieren.
Ein kleines Detail sollte auch nicht unerwähnt bleiben. Mit dem XSLT Output-Element kann man unter anderem angeben, ob das fertig transformierte HTML-Dokument korrekt oder überhaupt nicht eingerückt werden soll. In der Testphase sollte man die Option auf jeden Fall aktiviert haben. Bei indent="yes" werden sinnvolle Einrückungen vorgenommen, egal, wie man im urpsrünglichen XSLT-File mit Leerzeichen und Zeilenumbrüchen um sich geworfen hat.
Das ist vor allem für mich, als geplagten Textpattern-User eine Erleichterung, denn TXP veranstaltet oftmals unschöne Einrückungen, z.B. bei den Attributen wraptag oder break.
Wirklich praktisch wird ein »no« hier erst, wenn es um wirklich jedes Byte geht, denn durch die fehlenden Leer- und Tabulatorzeichen fallen bis zu 25% der Codegröße weg. Bei Webapplikationen mit viel Overhead und wenig Content ist das nicht zu missachten.
Ein anderer großer Vorteil ist selbstverständlich die Tatsache, dass es sich bei XSLT um einen hochoffiziellen Standard handelt.
Nutzen kann man das CMS übrigens sehr vielseitig. Die Templates lassen sich sehr modular aufbauen und dank sog. »Data Sources« lassen sich Schablonen für Inhalte wie Text, Bilder, Links etc. anlegen. Das Ganze kann man dann unterscheiden zwischen »ausschließlich für’s Backend« und »für Seitenbesucher«.
Es gibt zwar schon eine solche Schablone für »Comments«, allerdings ist das nichts weiter als eine »Articles«-Schablone mit subtilen Unterschieden.
Eine große Erleichterung während der Wartung ist der Maintenance-Mode. Ist man eingeloggt, kann man die Website ganz normal betrachten und – mit den integrierten Entwicklerwerkzeugen wie dem Debugger – fröhlich testen, während alle anderen Besucher eine Informationsseite zu sehen bekommen.

Das CMS macht es außerdem möglich, für eingeloggte Backend-User im Frontend Schaltflächen einzurichten, mit denen z.B. Artikel direkt bearbeitet werden können. Für mich kommt dieses Angebot aber nicht infrage, da ich es lieber habe, wenn das Frontend dafür gebraucht wird, wofür man es geschaffen hat: für den Besucher.
Natürlich gibt es auch eine Plugin-Möglichkeit. Dank der Vielseitigkeit der XSLT-Templates wird man diese aber wahrscheinlich gar nicht so oft in Anspruch nehmen müssen.
Negativ aufgefallen ist mir bisher nur die eher mäßige Visualisierung des Seitenbaums und das Auftreten von Parsing-Fehlern, wenn man in seine Artikel Entities à la » « schreibt.
Symphony ist trotzdem ein sehr vielseitiges und flexibles CMS, das ich in nächster Zeit produktiv einsetzen werde. Ob ich von meinem Traum-CMS reden kann, wird sich abzeichnen; die Chancen stehen auf jeden Fall sehr gut.
Kommentare [10]
Walter S. am 18.05.2009 um 21:14
Finde die Idee und die Funktionalität auch klasse, aber die Umsetzung. Im zweiten Screenshot der Debug-Ansicht: „Total Database Queries: 105“ – haben die eine Macke?! Sorry, für den ungepflegte Ausdrucksweise, aber das geht ja nun mal garnicht. Was soll der Mist? So kann man das Ding doch nicht einsetzen. Am Ende also doch wieder Müll. Wie bei SilverStripe: keine ordentlicher URL-Aufbau möglich und dafür bekommen die auch noch einen Preis.
Flux am 19.05.2009 um 15:40
Kann dem System auf den ersten Blick nichts abgewinnen. Sieht nicht nur bieder sondern auch umständlich und kompliziert aus.
Nils Hörrmann am 19.05.2009 um 18:16
Ich kann Symphony nur wärmstens empfehlen, da es unglaublich flexibel ist: von den Sektionen für die Dateneingabe über die URLs bis hin zur Datenausgabe lässt sich alles einstellen, wie man es braucht. Mit XML und XSLT wird für das Templating auf Webstandards gesetzt und auch hier bestimmt man selbst, was auf Fronendseite ausgegeben wird, da das System selbst kein Markup vorgibt.
Bezüglich der Datenbankabfragen: Diese scheinen in der Tat auf den ersten Blick sehr hoch, ich erinnere mich aber, dass die Entwickler im Vorfeld der Veröffentlichung von Symphony 2 ausführliche Performancetests in diesem Bereich gemacht haben. Die Zahl der Abfragen muss dabei im Gesamtkontext gesehen werden: Wie ist die Datenbank aufgebaut, wie umfangreich bzw. komplex sind sie im Einzelnen. Symphony macht hier einen guten Job.
Auf der Performance-Seite gibt es derzeit eher ein anderes Problem: die Erstellung großer XML-Mengen aus den abgerufenen Daten. Diese kann im ungünstigen Fall zu verlängerten Ladenzeiten führen. Das Problem liegt hierbei nicht auf Datenbankseite, sondern darin, wie die Daten in XML umgewandelt werden. Die Ursache liegt auf PHP-Ebene und eine Lösung ist für eine der kommenden Versionen angekündigt: Man wird auf PHP-eigenen Funktionen umsteigen. Bei einer normalen Seitenkomplexität tritt dieses Problem in der Regel nicht zu Tage.
Wer sich für Webstandards und einen flexiblen Seitenaufbau interessiert, sollte Symphony einmal aufprobieren. Es ist sicherlich kein Mittel für alles, aber eine gute Alternative zu Textpattern, Wordpress oder ExpressionEngine.
Markus Schlegel am 20.05.2009 um 17:51
Ich denke, Textpattern ist in Sachen Performance unschlagbar. Die kleine Menge an Queries muss da aber nicht der entscheidende Faktor sein.
Wie man dem Screenshot nämlich auch entnehmen kann, liegt die Gesamtzeit an Query-Aufwand bei unter 40ms, was beim letztlichen Seitenaufbau nicht einmal merkbar sein wird. Man kann sich an der Stelle selbstverständlich auch tot-optimieren; sinnvoller wäre es jedoch, sich den wirklichen Performance-Fressern (Bilder, Flash, JavaScripts) zu widmen.
Leon am 26.05.2009 um 11:40
Der Performance Test ergab bei mir eine Gesamtzeit von nur 0,0621s, was durchaus akzeptabel ist.
Die Freiheiten, alles anzupassen und quasi keine Vorgaben bei der Gestaltung der Datenstruktur/Transformation/Design zu bekommen spricht in meinen Augen eindeutig für Symphony.
Es ist halt nicht für Anfänger gedacht, jedoch könnten darchaus Metapakete angeboten werden, die fertige Templates für Benutzergruppen beinhalten, wodurch Symphony auch für Anfängern leicht zu nutzen wäre.
Die Übersichtlichkeit des Admin-Bereichs ist meiner Meinung nach sehr vorbildlich, was bei anderen Systemen oft nicht der Fall ist und diese durch ihre zahlreichen Funktionen den Benutzer oft zu erschlagen drohen.
Markus Schlegel am 26.05.2009 um 11:48
Die Übersichtlichkeit des Admin-Bereichs ist meiner Meinung nach sehr vorbildlich, was bei anderen Systemen oft nicht der Fall ist und diese durch ihre zahlreichen Funktionen den Benutzer oft zu erschlagen drohen.
Ja, die Übersichtlichkeit ist schon gut, mir fehlen aber ein paar Funktionen wie z.B. »Frontend anzeigen«. Aber solange es sich nicht Wordpress als Vorbild nimmt, kann ich darauf verzichten ;)
Nils am 11.06.2009 um 18:19
Markus: Wenn du oben auf den Titel klickst, gelangst du aufs Frontend :-)
Markus Schlegel am 11.06.2009 um 18:59
Auch nicht schlecht. Darauf muss man erst einmal kommen. Danke für den Hinweis!
Doku am 16.07.2009 um 17:50
Hmm, das klingt ziemlich interessant, jedoch finde ich auf der Homepage nur so ein bisschen Doku. Kennt jemand da noch was mehr?
Markus Schlegel am 16.07.2009 um 19:13
Auf der Startseite sind vier externe Artikel verlinkt:
- Manipulating HTML in XML
- Overriding Templates
- Dynamic Image Placement in Symphony
- Symphony as a data preservation utility
Mit diesen ist eigentlich das meiste schon erklärt. Alles weitere Wissen dreht sich um XSLT.
Das Forum ist übrigens sehr schnell und gut.
Kommentar verfassen
Flattr
Blogrolle
- Björn Seibert
Webdesign & Rest - Christoph Koeberlin
Typographie verstehen - Der Spiegelfechter
Zeitgeschehen - Feynsinn
Politisches - Gerrit van Aaken
Webdesign & Rest - Jeffrey Zeldman
Jeffrey Zeldman eben - Mathias Schäfer
Webstandards & so - Nico Brünjes
ZEIT-Website-Mensch - Peter Kröner
Webdesign, Rants & Rest - Stefan Münz
Zur Zukunft und Gegenwart des Web
Podroll
- Boagworld
Paul Boag & Marcus Lillington - Chaosradio Express
Tim Pritlove und Gäste - Elektrischer Reporter
Aufklärung netzpolitischer Themen - Medienradio
Podcast über Medien (srsly!) - Read Between the Leading
Design allgemein - Technikwürze
Webdesign & Rest
Soziale Netzwerke
- Amazon-Wunschliste
Auf dass man mich reich beschenke - dasauge
Profil und Portfolio - Delicious
Social Bookmarking - Formspring.me
Obwohl schon alles über mich gesagt ist. - Google Reader Shared Items
Was ich lese und gut finde - last.fm
Meine Musik - Twitter
Lyrik & Prosa - Xing
Geschäftliches
Twitroll
- @font
Tobias Otte - @freshmango
Dennis Frank - @Herr_Gabriel
Gabriel Shahzad - @netzpolitik
Markus Beckedahl - @timpritlove
Tim Pritlove




