Im ersten Artikel zu eZ Publish 5 haben wir einen ersten Blick auf die aktuelle Pre-Alpha des neuen Systems geworfen. Nun probieren wir es ganz praktisch aus. Wir werden die Step-by-Step-Installation durchführen und sehen, welche Überaschungen eZ5 für uns bereit hält. Ein einfaches “Hello World“ sollte wohl möglich sein…

Installation

Jetzt wird es praktisch. Das Konzept und die Idee hinter dem neuen eZ Publish5 ist leicht verständlich. eZ5 kommt mit einem Integrationsbranch daher, welcher über die bestehende Legacy-Version gespielt wird. Dann setzt man noch ein paar Symlinks im neuen eZ5-Repository auf den bisherigen Content und schon hat man sein bestehendes eZ4 mit einer Art eZ5-Wrapper versehen. Richtig, die alten Sourcen werden einfach verlinkt. Es sollte also alles laufen wie bisher, mit dem Unterschied, dass eZ5 draufsteht und der Weg für zukünftige Entwicklungen geebnet ist. Soweit die Theorie…

Die kurze und leicht verständliche Installationsanleitung auf Github weist den Weg zur Installation von eZ Publish 5 Schritt für Schritt. Zuerst richten wir eine neue eZ Publish 4 Installation ein, mit dem Ziel, diese auf Version 5 upzugraden. Wir ersetzen die Dateien mit denen des sogenannten Integrationsbranch und klonen uns das eZ5 Repo wie beschrieben von Github. Hierbei ist noch zu erwähnen, das ezpnext nicht wie andere Vendor-Packs per Composer eingebunden wird, sondern per gitSubmodule.Die folgenden Schritte laufen problemlos bis zum Setzen der Symlinks. Hier tritt der erste Fehler auf.

Anscheinend ist die Charset-Angabe in einer config-Datei veraltet:

Um welche “configuration file” es sich handelt, wird aus der Fehlermeldung nicht ganz klar. Nach kurzem Suchen findet man in diesem Dokument “../ezpublish5/app/config/config.yml” in Zeile 6 diese Angabe “charset: UTF-8”, welche komplett entfernt werden kann.

Um weitere Fehlermeldungen dieser Art zu vermeiden, ist es zwingend notwendig, den Integrationsbranch vorher einzuspielen. Der Integrationsbranch wird einfach in die bestehende eZ-Legacy-Version kopiert, bestehende Dateiein müssen ersetzt werden. Mit diesem Schritt wird das bestehende System kompatibel für Version 5.

Nach Abschluss der Installation sieht zunächst in der Konsole alles gut aus. Wenn man zu Testzwecken eine Erstinstallation auf einem lokalen System ausführt, ist darauf zu achten, dass das setzen der Symlinks nur als eingeloggter User auf dem Webserver ausgeführt wird. Setzt man die Links als lokaler User, hat dies keine Auswirkung. Die Folge davon ist, dass eZ die Pfadangaben zu externen Dateien wie Stylesheets und Javascript-Dateien nicht findet. Das führt zu einem ziemlich schmucklosen Ergebnis mit einem Haufen 404-Responses.

Hello World

Die Installation ist geschafft. Zeit, sich den Code genauer anzuschauen. Es erwartet einen nicht allzuviel an Sourcen im neuen eZ Publish5. Lediglich ein Ordner “DemoBundle” mit einem Controller, der unterschiedliche Actions zu Demonstrationszwecken exemplarisch zusammenstellt:

Hieraus kann man mit den acht einfachen vordefinierten Routen unter “ezpublish5/src/EzSystems/DemoBundle/Resources/config/routing.yml” verschiedene “Hello World” Ausgaben generieren. Z.B. auch eine Integration von Legacy-Content in einem neuen Twig-Template. Bei genauerem hinschauen in die Symfony Dateistruktur wird deutlich, aus was dieser eZ5-Wrapper besteht. Es sind 2 Bundles welche unter dem Verzeichnis vendor liegen:

EzPublishCoreBundle
EzPublishLegacyBundle

Beim ersten Betrachten der Webseiten, welche die Actions generieren, fällt die Profiler-Toolbar von Symfony 2 auf. Es ist geschafft: eZ Publish content innerhalb des Symfony2 Frameworks.

Das war der erste Teil unseres “Hands on eZ Publish 5”. Ich freue mich über Kommentare, wenn Sie Fragen dazu oder eigene Erfahrungen gemacht haben.

Im nächsten Teil dieser Serie beschäftigen wir uns mit der Migration eines Moduls von eZ Publish 4 nach eZ Publish 5, anhand eines Content-Moduls für die Anzeige von Inhaltsobjekten in verschiedenen Ansichten.

0 Kommentare

Einen Kommentar abschicken

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