Beispiele
Paket importieren
Paket importieren
Der Projekt Manager kann nicht nur genutzt werden, um neue Projekte zu beginnen, sondern auch um die Entwicklung an bereits existierenden Paketen mithilfe des Projekt Managers fortzuführen. Dafür ist ein einmaliger Import des Pakets notwendig. Um den Import vollständig abzuschließen und die Entwicklung an der nächsten Version zu beginnen ist zudem der Exporter notwendig.
Zur Zeit sind für den Import noch ein paar wenige manuelle Schritte notwendig. Für die Zukunft ist ein vollständig automatisierter Import geplant.
Vorbereitung
Für den Import eines Pakets ist nichts weiter notwendig, außer die Einrichtung der eigenen Entwicklungsumgebung bestehend aus einem lokalen PHP Server mit MySQL Datenbank und einer Installation von WCF, Projekt Manager und Exporter. Eine komplette Schritt für Schritt Anleitung zum Einrichten einer solchen Entwicklungsumgebung ist hier zu finden.
Installation des Pakets
Das Paket, welches importiert werden soll, wird im ACP unter
System > Pakete > Paket installieren
installiert. Nachdem die Installation abgeschlossen ist, ruft man die Paketliste unter System > Pakete > Pakete auflisten
auf. Dort klickt man neben dem gerade installierten Paket auf Projekt aktivieren
. Nachdem die Ladeanimation verschwindet, ist das Paket als Projekt eingetragen.Eintragen des Projektverzeichnisses
Als nächstes klickt man in der Paketliste neben dem Projekt auf
Projekt bearbeiten
.Im Formular wird unter Projektverzeichnis das gewünschte Verzeichnis eingetragen. In meinem Beispiel, welches auf die Anleitungen zum Einstieg aufbaut, ist dies
D:/xampp/htdocs/workspace/MeinImportiertesPaket
. Dann wird das Formular abgesendet.Kopieren der Dateien
In das Projektverzeichnis werden nun die Dateien (einschließlich Templates) kopiert. Dazu öffnet man das TAR Archiv des importierten Pakets und extrahiert die Dateien und Templates. Je nach dem, in welche Anwendung die Dateien installiert werden, muss ein entsprechender Ordner im Projektverzeichnis angelegt werden. Werden die Dateien beispielsweise in das WBB installiert, muss im Projektverzeichnis ein Ordner
wbb
angelegt werden. Werden die Dateien ins WCF installiert, ist ein Order wcf
im Projektverzeichnis notwendig. Falls das Paket Dateien in verschiedenen Anwendung installiert hat, ist entsprechend für jede Anwendung ein Ordner notwendig.Das von mir importierte Paket MeinImportiertesPaket hat Dateien nur im WCF installiert. Darum lege ich einen Order
wcf
im Projektverzeichnis an: D:/xampp/htdocs/workspace/MeinImportiertesPaket/wcf
. In diesen Ordner werden die Dateien (einschließlich Templates) kopiert. Da mein importiertes Paket Templates, ACP Templates, JavaScript und PHP Dateien enthält, habe ich folgende Verzeichnisse:D:/xampp/htdocs/workspace/MeinImportiertesPaket/wcf/acp/templates
Enthält die ACP Templates.
D:/xampp/htdocs/workspace/MeinImportiertesPaket/wcf/js
Enthält die JavaScript Dateien.
D:/xampp/htdocs/workspace/MeinImportiertesPaket/wcf/templates
Enthält alle Templates.
D:/xampp/htdocs/workspace/MeinImportiertesPaket/wcf/lib/[...]
Enthält alle PHP Dateien.
Achten Sie bitte darauf, dass der Webserver beziehungsweise PHP sowohl Lese- als auch Schreibrechte für die Dateien und Ordner hat.
Alte Versionen erstellen
Für diesen Schritt ist es notwendig, dass der Exporter installiert ist, da sonst die im folgenden verwendeten Funktionen nicht verfügbar sind.
Das importierte Paket muss nun zurückdatiert und dann exportiert werden. Dazu ruft man im ACP
System > Pakete > Projekte auflisten
auf und drückt links vom Projekt auf Versionen anzeigen
. In der Liste der Versionen klickt man neben der Version auf Bearbeiten
.Als Versionsnummer gibt man die kleinste Versionsnummer ein, für welche das importierte Paket Update Anweisungen enthält. In meinem Fall gibt es neben der aktuellen Version
1.0.2
die zwei Vorgänger 1.0.1
und 1.0.0
. Entsprechend ändere ich die Version auf 1.0.0
und sende das Formular ab.Nun öffnet man erneut die Versionsliste und exportiert das Paket. Danach veröffentlicht man das Paket. Im Anschluss wählt man
Version hinzufügen
und fügt die nächsthöhere Version hinzu, für welche das Paket Update Anweisungen enthält. In meinem Fall also Version 1.0.1
.Zurück in der Versionsliste exportiert man die gerade erstelle Version und veröffentlicht diese ebenfalls. Diesen Vorgang wiederholt man solange, bis alle alten Versionsnummern vorhanden sind. Zuletzt fügt man die aktuelle Version des Pakets hinzu. In meinem Fall also Version
1.0.2
. Nachdem die aktuelle Version hinzugefügt wurde, wechselt man zu dieser Version.Update Anweisungen übernehmen
Die Update Anweisungen, welche das importierte Paket in der package.xml enthält, müssen noch übernommen werden. Dazu ruft man das Projekt im ACP unter
System > Pakete > Projekte auflisten
durch Klick auf den Namen des Projekts auf. Im Menü auf der nächsten Seite öffnet man den Tab Installation > Anweisungen
und klickt dort auf das Plus um eine Anweisung hinzuzufügen.Mein importiertes Paket ist zum Zeitpunkt des Imports in Version
1.0.2
und es gab zuvor die Versionen 1.0.1
und 1.0.0
für welche jeweils Update Anweisungen in der package.xml eingetragen sind. Die package.xml des importierten Pakets enthält folgende Update anweisungen:XML Source Code
- <instructions type="update" fromversion="1.0.1">
- <instruction type="file">files.tar</instruction>
- <instruction type="template">template.tar</instruction>
- <instruction type="eventListener">eventListener.xml</instruction>
- <instruction type="language">language/*.xml</instruction>
- </instructions>
- <instructions type="update" fromversion="1.0.0">
- <instruction type="file">files.tar</instruction>
- <instruction type="template">template.tar</instruction>
- <instruction type="templateListener">templateListener.xml</instruction>
- <instruction type="option">option.xml</instruction>
- <instruction type="eventListener">eventListener.xml</instruction>
- <instruction type="language">language/*.xml</instruction>
- </instructions>
Die Anweisungen vom Typ
file
, template
und acpTemplate
sowie language
müssen nicht eingetragen werden. Alle anderen Typen müssen im Projekt Manager eingetragen werden. In Fall meines importierten Pakets bedeutet dies, dass die eventListener
, option
und templateListener
Anweisungen im Projekt Manager eingetragen werden müssen.Im Formular Anweisung hinzufügen beginne ich mit
option
. Der Name kann frei gewählt werden und ist nur für den Entwickler zur Unterscheidung der Anweisungen. Als PIP wird der Typ der Anweisung gewählt, also option
in diesem Fall. Position bleibt auf Anfang, Reihenfolge auf 0 und Installation bekommt keinen Haken. In das Feld Versionen wird pro Zeile eine Version eingetragen, für welche diese Anweisung auszuführen ist. Die option
Anweisung wird nur im Fall von fromversion="1.0.0"
ausgeführt. Entsprechend ist in das Feld nur 1.0.0
einzutragen. In das Inhalt Feld wird der Inhalt der option.xml Datei aus dem importieren Paket eingetragen. Dann wird das Formular abgeschickt.Mit
templateListener
wird gleich verfahren wie mit option. Für die eventListener
Anweisung muss ebenfalls nicht viel anders gemacht werden. Zu beachten ist lediglich, dass die Anweisung sowohl beim Update von Version 1.0.0
als auch von Version 1.0.1
ausgeführt wird. Entsprechend müssen im Versionen Feld beide Versionen angegeben werden.Erstellen der neuen Version
Das importierte Paket muss nun erneut exportiert werden. Dazu ruft man im ACP wieder
System > Pakete > Projekte auflisten
auf und drückt links vom Projekt auf Versionen anzeigen
. In der Liste der Versionen klickt man bei der aktuellsten Version auf Exportieren
.Nachdem das Paket exportiert wurde, kann es mit dem Button
Veröffentlichen
rechts daneben veröffentlicht werden. Nach der Veröffentlichung fügt man eine Version hinzu. Im Formular trägt man die gewünschte nächste Versionsnummer ein und sendet es ab. Man kehrt in die Versionsliste zurück und klickt dort den Zu Version 1.0.3 wechseln
Button.Abschluss
Nachdem die obigen Schritte einmalig ausgeführt wurden, kann an allen zukünftigen Versionen des Pakets mithilfe des Projekt Managers gearbeitet werden. Der Projekt Manager berücksichtigt beim Exportieren der neuen Versionen die manuell eingetragenen Update Anweisungen, sodass auch Nutzer von Version
1.0.0
und 1.0.1
meines Beispiel-Pakets ein Update auf neuere Versionen durchführen können.Eine vollständige Automatisierung des kompletten Import-Vorgangs ist für die Zukunft geplant.