Revision-History für 3.2

Version 3.2 des Adventure PHP Frameworks (APF) verbessert die in der vorangegenen Version eingeführten Neuerungen konsequent und bringt viele Erweiterungen und Optimierungen. Die Code-Basis ist für den Einsatz in PHP >=5.6.0 freigegeben.

Bitte beachten Sie, dass die Version 3.2 des APF mindestens PHP 5.6 voraussetzt. Dies wurde im Zuge des Updates auf PHPUnit 5.2.X notwendig.

Im produktiven Einsatz ist auch PHP-Version >=5.5.0 ausreichend.

Seit Release 3.2 ist das APF auch als Composer-Paket über packagist.org/package/apf/apf verfügbar und kann mit einem einfachen

Code
"require": { "apf/apf": "dev-master" }

über Composer installiert und aktualisiert werden.

Mit den Tags <cont:placeholder /> und <cont:template /> liefert das APF nun eine elegante Standard-Lösung zur Ausgabe von bedingten Inhalten. Mehr Details erfahren Sie in Kapitel Erweiterte Template-Funktionen.

Das Setzen und Auswerten von Platzhaltern wurde einer umfangreichen Performance-Optimierungen unterzogen. Das Setzen von Platzhaltern (ID#287) konnte um 70% beschleunigt werden und darauf basieren die Verarbeitung von Platzhaltern (ID#284) nochmals um 60%.

Ein Umbau des BenchmarkTimer (ID#214) sorgt für eine deutlisch schnellere Ausführung der Performance-Messung und beschleunigt eine Anwendung im Durchschnitt zwischen 10% und 30%.

Die neu hinzugekommene Methode HtmlFormTag::fillModel() (ID#275) hilft bei der Auswertung von Formularen und stellt ein sehr effektives Mittel bereit Formular-Inhalte direkt in DTOs bzw. Models zu übertragen. Details entnehmen Sie bitte Kapitel Verwendung von Formularen.

Beim Umstieg auf die Version 3.2 sind Anpassungen an Code und Konfigurations-Dateien ihrer bestehenden Applikationen notwendig. Um dies zu erleichtern hat das APF-Team der neuen Version Migrations-Skripts beigelegt. Dieses ermöglicht Ihnen, Ihre bestehende Applikationen in wenigen Minuten automatisch zu aktualisieren. Eine Anleitung und Hinweise finden Sie unter Migration von 3.1 auf 3.2.

Die vollständige Roadmap lässt sich im Adventure PHP Framework Issue Management-Tool einsehen. Details zu den im Release erledigten Tickets finden Sie ebenfalls dort.

1. Bugfixes

Das Release 3.2 behebt folgende Fehler aus der Version 3.1:

  • ID#298: Bei statischer Aktivierung im Formular (Setzen des Attributes checked) wird eine Checkbox beim Absenden trotz aktiver Auswahl deaktiviert.
  • ID#296: Ist das zugehörige PHP-Modul für die Datenbank-Abstraktion nicht geladen (z.B. mysqli für den MySQLiHandler) kommt es zu nicht nachvollziehbaren Fehlermeldungen (z.B. call to undefined function).
  • ID#295: Beim Löschen von Konfigurationen in der Datenbank kommt es bei der Nutzung des DbConfigurationProvider zu Fehler.
  • ID#286: Der Objekt-Cache der SessionSingleton-Implementierung überlagert den der Singleton-Implementierung und erzeugt Fehler in der Applikation.
  • ID#285: Das DefaultLinkScheme codiert Leerzeichen nicht als %20.

Details können Sie im Issue Management Tool nachlesen.

2. Neue Features

Das Release 3.2 beinhaltet folgende Features:

  • ID#283: Zur Erleichterung des Templatings wurden die Tags <cont:placeholder /> und <cont:template /> eingeführt. Mit diesen lässt sich die Ausgabe von bedingten Inhalten elegant im Template umsetzen. Mehr Details erfahren Sie in Kapitel Erweiterte Template-Funktionen.
  • ID#282: Der MySQLxHandler wurde entfernt, da die mysql-PHP-Extension als veraltet markiert wurde.
  • ID#284 und ID#287: Das Setzen und Auswerten von Platzhaltern wurde einer umfangreichen Performance-Optimierungen unterzogen. Das Setzen von Platzhaltern (ID#287) konnte um 70% beschleunigt werden und darauf basieren die Verarbeitung von Platzhaltern (ID#284) nochmals um 60%.
  • ID#214: Ein Umbau des BenchmarkTimer sorgt für eine deutlisch schnellere Ausführung der Performance-Messung und beschleunigt eine Anwendung im Durchschnitt zwischen 10% und 30%.
  • ID#275: Die neu hinzugekommene Methode HtmlFormTag::fillModel() hilft bei der Auswertung von Formularen und stellt ein sehr effektives Mittel bereit Formular-Inhalte direkt in DTOs bzw. Models zu übertragen. Details entnehmen Sie bitte Kapitel Verwendung von Formularen.
  • ID#299: Die Ausgabe von einfachen, sich wiederholenden Inhalten ist nun mit Hilfe des <loop:template />-Tags noch einfacher geworden. Das Template-Tag zeigt Listen von Inhalten (assoziative Arrays oder Objekte) automatisch an. Details erfahren Sie in Kapitel Erweiterte Template-Funktionen.

Alle Details finden Sie im Issue Management Tool.

3. Allgemeine Hinweise

Die Dateien mit dem Namen apf-codepack-* enthalten die Bibliotheken des Framework, Dateien mit dem Namen apf-demopack-* die Bibliotheken plus einer Demo-Applikation. Für Einsteiger wird empfohlen die Demo-Packs herunter zu laden. Release-Dateien mit dem Namen apf-configpack-* beinhalten Beispiel-Konfigurationen, die die Konfigurations-Attribute der jeweiligen Tools und Anwendungen nochmals beschreiben.

Die Dateien mit dem Namen apf-calc-example-*, apf-vbc-example-* und apf-modules-example* sind lauffähige Beispiele für die Umsetzung von

  • einem Rechner-Modul (apf-calc-example-*),
  • View-abhängiges Caching (apf-vbc-example-*) und
  • die Einbindung von dynamischen Modulen (apf-modules-example*)

auf Basis des APF. Zum Setup der Beispiele liegt bei Bedarf die Datei SETUP.TXT mit weiteren Instruktionen bei.

Die Offline-Dokumentation ist in drei verschiedenen ZIP-Formaten als HTML-Seite verfügbar.