Revision-History für 3.3

Version 3.3 des Adventure PHP Frameworks (APF) erweitert die Vorgänger-Version um zusätzliche Templating-Möglichkeiten, bringt eine neue E-Mail-Versand-Funktionalitäten mit, verbessert die PHP 7 Kompatibilität und erlaubt, Formulare mit Hilfe eines Models zu befüllen. Die Code-Basis ist für den Einsatz in PHP >=5.6.0 freigegeben.

Bitte beachten Sie, dass die Version 3.3 mindestens PHP 5.6 voraussetzt.

Alternativ zum Download kann das Release 3.3 des APF auch als Composer-Paket über packagist.org/package/apf/apf bezogen werden. Hierzu erweitern Sie Ihre Projekt-Konfiguration bitte wie folgt:

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

Anschließend kann das APF über Composer installiert und aktualisiert werden.

Im Rahmen des Releases 3.3 wurde das Templating weiter verbessert. Der <loop:template />-Tag kann nun innerhalb eines <cond:template />-Tags verwendet werden und die Vergleichsoperationen für die bedingte Ausgabe wurden um nummerische Vergleiche und reguläre Ausdrücke erweitert. Mehr Details erfahren Sie in Kapitel Erweiterte Template-Funktionen.

Die neu hinzugekommene Methode HtmlFormTag::fillForm() hilft bei der Befüllung von Formularen und stellt ein sehr effektives Mittel bereit Formulare direkt aus DTOs bzw. Models zu füllen. Details entnehmen Sie bitte Kapitel Verwendung von Formularen.

Mit der Version 3.3 wurde die veraltete Komponente mailSender durch eine neue E-Mail-Versand-API ersetzt. Das objektorientierte Interface der Klasse Message erleichtert nun die Erstellung und den Versand von E-Mails deutlich. Details entnehmen Sie bitte dem Kapitel E-Mail-Versand.

Die Gestaltung und Validierung von Formularen wurde im Zuge der Issues ID#303 und ID#307 nochmals verbessert. Formular-Gruppen können nun direkt im Template versteckt werden und dynamisch im Controller versteckte Felder werden nicht mehr in der Valisierung berücksichtigt.

Beim Umstieg auf die Version 3.3 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.2 auf 3.3.

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.3 behebt folgende Fehler aus der Version 3.2:

  • ID#306: Der GORM ist anfällig für SQL Injection.
  • ID#303: Die Applikation stürzt bei Zeilenumbrüchen in Tag-Definitionen ab.
  • ID#305: Die Nutzung der Methode MySQLiHandler::executeTextBindStatement() tritt ein Fehler auf (Call to undefined method mysqli_stmt::more_results() ).

Details können Sie im Issue Management Tool nachlesen.

2. Neue Features

Das Release 3.3 beinhaltet folgende Features:

  • ID#301, ID#302, ID#304 und ID#308: Das Attribut condition zur Steuerung der bedingten Ausgabe unterstützt nun die Verwendung von regulären Ausdrücken und nummerischen Vergleichen. Darüber hinaus stellt sich ein <loop:template /> direkt und ohne Controller-Code dar und lässt sich auch innerhalb eines <cond:template />-Tags verwenden. Mehr erfahren Sie in Kapitel Erweiterte Template-Funktionen.
  • ID#251: Die in Release 3.0 als veraltet markierte Komponente mailSender wurde in diesem Release entfernt. Zum Versand von E-Mails steht nun die Komponente Message zur Verfügung. Details entnehmen Sie bitte dem Kapitel E-Mail-Versand.
  • ID#313: Die in der Code-Basis vorhandenen apc_*()-Aufrufe wurden durch ihre Pendants apcu_*() ersetzt um die PHP 7 Kompatibilität zu verbessern.
  • ID#307: Bei der Validierung von Formularen wird nun die Sichtbarkeit von Formular-Elementen berücksichtigt.
  • ID#303: Formular-Gruppen können zur bedingten Anzeige von Elementen nun direkt im Template versteckt werden. Das nachträgliche Einblenden ist über die API des <form:group />-Tag möglich. Weitere Details entnehmen Sie bitte dem Kapitel Verwendung von Formularen.
  • ID#297: Die neu hinzugekommene Methode HtmlFormTag::fillForm() hilft bei der Befüllung von Formularen und stellt ein sehr effektives Mittel bereit Inhalte von DTOs bzw. Models direkt in Formulare zu übertragen. Details entnehmen Sie bitte Kapitel Verwendung von Formularen.
  • ID#147 Der Wiki-Artikel XSS-Schutz für Platzhalter beschreibt, wie sich ein zusätzlicher XSS-Schutz durch eine erweiterte Implementierung des mit dem APF mitgelieferten Platzhalter-Tags erreichen lässt.

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.