Migration von 3.0 auf 3.1

1. Einleitung

Version 3.1 ist in sehr großen Teilen komplett kompatibel mit der Vorgänger-Version. Neben der Ausführung der automatisierten Migration fallen lediglich kleiner Anpassungen an, die in Kapitel 3 beschrieben werden.

Mit dem Erscheinen dieses Release wird die Weiterentwicklung der Version 3.0 eingestellt. Security- und Bug-Fixes werden bis Ende 2016 verfügbar sein.

In diesem Artikel erfahren Sie, wie Sie eine bestehende Anwendung auf APF-Version 3.1 aktualisieren können. Wie bereits von den vorangegangenen Versionen gewohnt, kann die Migration auch in diesem Release weitestgehend automatisiert erfolgen. Zu diesem Zweck liegen zwei Migrations-Skripten bei: migrate-code.sh für die Aktualisierung von HTML- und PHP-Dateien und migrate-config.sh für Konfigurations-Dateien.

Das APF-Team empfiehlt, die Nutzung der Migrations-Skripten einer manuellen Migration vorzuziehen. Dies spart Zeit und Kosten und stellt sicher, dass alle relevanten Stellen erfasst wurden.

Die folgenden Kapitel stellen die notwendigen Schritte zum Umstieg auf Version 3.1 zusammen.

2. Automatisierte Migration

Die Migration mit Hilfe eines mitgelieferten Migrations-Skripts erledigen. In diesem Release wurden Änderungen an Code- und Konfigurations-Dateien vorgenommen, die mit Hilfe der Skripte migrate-code.sh und migrate-config.sh auf Ihre bestehende Applikation übertragen werden können.

Bitte stellen Sie sicher, dass Sie vor der Migration alle unter Migration von 2.1 auf 3.0 beschriebenen Schritte durchgeführt haben. Setzen Sie eine noch ältere Version ein, migrieren Sie bitte zuerst vollständig auf die Version 3.0. Hinweise zur jeweiligen Migration finden Sie auf der Seite Artikel.
Bitte erstellen Sie vor der Ausführung der Skripten eine Sicherungskopie Ihrer Anwendung um bei Bedarf Inhalte wieder herstellen zu können!

Sofern Sie auf Windows entwickeln, installieren Sie bitte eine aktuelle Version von cygwin (Download unter cygwin.com). Eine Migration auf Basis eines Windows-Batch-Script wird nicht angeboten.

Um Ihre Quell-Code-Dateien auf den neuesten Stand zu bringen, führen Sie das Skript bitte wie folgt aus:

Bitte wechseln Sie vor der Ausführung in das Code-Verzeichnis Ihrer Applikation um unerwartete Ergebnisse zu vermeiden.
Code
$ /path/to/APF/migration/migrate-code.sh /cygdrive/c/xampp/php/php ############################################# # APF 3.1 automatic code migration # ############################################# Checking PHP executable available ... [OK] Using given php executable at /cygdrive/c/xampp/php/php. PHP Version: 5.6.12. ############################################# Starting migration ... * Migrate request and response obtaining ... * Migrate method signature ... ############################################# Migration done! Please check your code and follow instructions within migration documentation!

Um Ihre Konfigurations-Dateien auf den neuesten Stand zu bringen, führen Sie das Skript bitte wie folgt aus:

Bitte wechseln Sie vor der Ausführung in das Konfigurations-Verzeichnis Ihrer Applikation um unerwartete Ergebnisse zu vermeiden.
Code
$ /path/to/APF/migration/migrate-config.sh /cygdrive/c/xampp/php/php ############################################# # APF 3.1 automatic configuration migration # ############################################# Checking PHP executable available ... [OK] Using given php executable at /cygdrive/c/xampp/php/php. PHP Version: 5.6.12. ############################################# Starting configuration migration ... ############################################# Migration done! Please check your configuration and follow instructions within migration documentation!

3. Manuelle Schritte

Das Migrations-Skript kann leider nicht alle Projekt-spezifischen Konstrukte migrieren. Die folgenden Kapitel zeigen, welche manuellen Schritte notwendig sind um bestehenden Code mit der Version 3.1 einsetzen zu können:

3.1. Zugriff auf Request und Response

Um das Erstellen von Unit Tests zu erleichtern wurde der Zugriff auf den Request und Response auf einen Instanz-bezogenen Modus umgestellt. Statt

PHP-Code
self::getRequest()

können Sie nun

PHP-Code
$this->getRequest()

nutzen und die Methode so in Unit Tests einfacher mit einem MOCK belegen.

Sollten Sie in einer statischen Methode Zugriff auf den Request benötigen, steht Ihnen über das Trait APF\core\http\mixins\GetRequestResponse die statische Methode getRequestStatic() zur Verfügung.

Der Zugriff auf den Response verhält sich analog dazu. Statt bisher

PHP-Code
self::getResponse()

können Sie nun per

PHP-Code
$this->getResponse()

auf die Instanz der Response-Implementierung zugreifen. Auch in diesem Fall steht Ihnen zusätzlich die Methode getResponseStatic() für den statischen Zugriff zur Verfügung.

3.2. Umstellung Methoden-Signatur

In der Version 3.1 wurde in allen Bereichen der APF-Code-Basis die verkürzte Array-Notation eingeführt. Um die Kompatibilität zu gewährleisten empfiehlt das APF-Team daher die Umstellung aller Methoden-Signaturen in Ihrem Projekt, die APF-Methoden überschreiben. Schreiben Sie dazu alle Vorkommen von z.B.

PHP-Code
public function setAttributes(array $attributes = array())

auf

PHP-Code
public function setAttributes(array $attributes = [])

um. Zur Suche der relevanten Stellen lässt sich der reguläre Ausdruck

Code
( |\()array\(

nutzen.

Kommentare

Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
Für diesen Artikel liegen aktuell keine Kommentare vor.