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 .

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.