|
|
|
|
Downloads
Auf dieser Seite können die Quellcodes und Dokumentationen des Frameworks heruntergeladen werden.
Die Bibliotheken sind für den Einsatz unter PHP 4 und PHP 5 freigegeben.
Quellcode und Dokumentation unterliegen der LGPLv3-Lizenz. Details zur Lizensierung können
unter Lizenz eingesehen werden.
Details zum jeweiligen Release können den Release-Notes entnommen werden.
Die chm-Versionen der Offline-Dokumentation können unter LINUX mit den Programmen GnoCHM,
erhältlich unter http://sourceforge.net/project...p_id=96084
bzw. xCHM, erhältlich unter http://xchm.sourceforge.net/download.html,
betrachtet werden. Die Programme basieren jeweils auf der chmlib
(http://www.jedrea.com/chmlib/).
Version 1.9
Das Release 1.9 (stable) beinhaltet Bibliotheken für den Einsatz in PHP 4 und PHP 5.
Für die beiden PHP-Versionen werden jeweils eigene Pakete ausgeliefert. Getestet wurde mit und
ohne Kompatibilitätsmodus gegen die Versionen >= 5.2.6 und <= 4.4.8. Die Version ist
für den Einsatz auf Produktiv-Umgebungen freigegeben.
Der Artikel
Migration von 1.8 auf 1.9
fasst die notwendigen Änderungen an den bestehenden Applikationen zusammen, da die Version
nicht nur neue Features, sondern auch einige Änderungen der API beinhaltet.
Wichtige Änderungen in der Version 1.9 (stable) sind:
-
Refactoring: In der Version 1.9 wurde die Implementierung der Filter komplett
überarbeitet. Dies umfasst sowohl die Definition von Filtern als auch die Konfiguration
von Input- und Output-Filter über die
Registry. Die Dokumentation
der neuen Filter-Implementierung kann im Kapitel
Filter nachgelesen werden. Mit dem Refactoring
der Filter-Core-Komponenten wurden auch Formularfilter eingeführt. Details hierzu finden sich im
Kapitel Verwendung von Formular-Filtern.
-
Verbesserung: Um das Debugging mit der im Framework integrierte Fehlerbehandlung
einfacher zu gestalten, wird der Stacktrace nun nur noch bis zum eigentlichen Fehler angezeigt.
Dies erhöht die Übersichtlichkeit und blendet unnötige Aufrufe aus.
-
Refactoring: Die Komponente filesystemHandler wurde gemäß der
Ankündigung aus dem Release entfernt. Als Ablösung dient die Klasse FilesystemManager
aus dem Tools-Namespace (siehe unten).
-
Erweiterung: Die Fehlerbehandlung des Frameworks wurde flexibler gestaltet. Das
bedeutet, dass die Komponente, die zur Behandlung von Fehlern eingesetzt wird, bei Bedarf über
die Registry selbst definiert werden kann. Die Dokumentation der Konfiguration und die Erweiterung
der Fehlerbehandlung kann im Kapitel
Fehlerbehandlung nachgelesen
werden.
-
Verbesserung: Der Wert des Registry-Offsets URLBasePath (Namespace:
apf::core) beinhaltet nun auch den Protokoll-Kenner.
-
Erweiterung: Um in PHP 5 eine globale Exceptionbehandlung ähnlich der im
Framework enthaltenen globalen
Fehlerbehandlung zu
ermöglichen, wurde im PHP-5-Release die ExceptionHandler-Komponente hinzugefügt.
Diese ermöglicht das globale Abfangen von unbehandelten Exceptions in einer Anwendung.
Funktion, Erweiterung und Anwendung können dem Kapitel
Exceptionbehandlung
entnommen werden.
-
Bugfix: Durch das explizite Leeren des Log-Puffers bei jedem Aufruf von
flushLogBuffer() ist nun sichergestellt, dass jede von Log-Meldungen nur exakt einmal
im Log auftaucht.
-
Bugfix: Der MySQLxHandler/MySQLxHandler baut
nun auch für identische Verbindungsdaten eine neue Verbindung zur Datenbank auf. Dadurch
kommt es nicht zu überlagerung von Verbindungen, die zwar mit Hilfe der selben Zugangsdaten
aufgebaut werden, jedoch eine andere Datenbank nutzen.
-
Verbesserung: Bei der Generierung der CREATE TABLE-Statements für das
Setup des GenericORMapper wird nun der Datentyp INT statt
TINYINT verwendet, damit ein größerer Datenraum adressiert werden kann. Details
können der Diskussion im
Forum
entnommen werden.
-
Verbesserung: Der GenericORMapper wurde um die Methode
loadRelationMultiplicity() erweitert. Diese ermöglicht es, die Vielfachheit einer
Beziehung zu laden um ggf. im Programmablauf darauf reagieren zu können. Die Dokumentation der
Funktion kann dem Kapitel Laden der Beziehungsmultiplizität
entnommen werden.
-
Bugfix: Die private Methode __getAssociationsByObjectName() wurde so
verändert, dass diese nur noch diejenigen Assoziationen zurückgibt, die auch für ein Objekt
definiert sind. Dies verursachte u.U. fehlerhafte SQL-Statements wegen unerlaubter JOIN-Bedingungen.
-
Erweiterung: Mit dem Release 1.9 wurde das bisher nur im Quellcode enthaltene
Modul usermanagement überarbeitet und zur Verwendung dokumentiert. Da das Modul
auf dem GenericORMapper aufsetzt, kann das Datenmodell auch direkt mit diesem verwendet
werden und bietet damit ein allgemeingültiges und mandantenfähiges Benutzermanagement für
diverse Applikationen. Der Dokumentation wurde das Kapitel ein eigenes
Kapitel gewidmet.
-
Refactoring: Im Rahmen der Erweiterung des GenericORMappers wurde dar
Pager einem Refactoring unterzogen. Die Überarbeitung beinhaltete die Kompatibilität
zum GenericORMapper und der Verbesserung der Performance durch Caching der Datenbank-Abfragen.
Weiterhin setzt der Pager nun auf dem ConnectionManager auf und besitzt zwei weitere
Konfigurationsparameter. Die
Dokumentation der Komponente wurde
hinsichtlich der neuen Features und der geänderten API entsprechend angepasst. Beispiel-Konfigurationen
finden sich im adventure-configpack-*-Release.
-
Refactoring: Die Business-Komponenten der Module comment und
guestbook wurden auf die neue API des Pagers angepasst. Beim Update der
Module muss deshalb darauf geachtet werden, dass die Version des Pagers ebenfalls
angepasst wird.
-
Erweiterung: Die Formular-Tags wurden um eine Filtermöglichkeit erweitert. Diese
setzt auf der Definition der Core-Filter auf und ermöglicht es, Inhalte von Textfeldern zu
filtern. Die Dokumentation wurde um das Kapitel
Kapitel Verwendung von Formular-Filtern
erweitert. Dieses beschreibt die Anwendung und gibt praktische Anwendungsbeispiele.
-
Erweiterung: Als Ablösung der veralteten Komponente variablenHandler
wurde die Klasse RequestHandler eingeführt. Diese ermöglicht es, Werte aus der
Benutzeranfrage auszulesen und mit Standard-Werten zu belegen, falls diese nicht vorhanden sind.
Die Dokumentation der Komponente findet sich im Kapitel
Klassen-Referenz - RequestHandler.
-
Erweiterung: Um Applikationen, die auf dem Frontcontroller basieren, noch einfacher
einbinden zu können wurde die Taglib <generic:importdesign /> um das
dependent action-Feature erweitert. Die neu hinzugekommenen Attribute registrieren
dabei eine dort definierte Frontcontroller-Action in der URL, die das eingebundene Modul z.B.
zur Navigation benötigt. Die Erweiterung ist aus einer Diskussion im
Forum
entstanden. Die Dokumentation kann im Kapitel
Generischer importdesign-Tag
nachgelesen werden.
-
Erweiterung: Das Release beinhaltet seit dem 1.9er Branch nun eine Komponente
zur Verwaltung von Cookies. Die Klasse CookieManager beinhaltet Methoden zum
Setzen, Manipulieren und Löschen von HTTP-Cookies in APF-Namespaces. Die Dokumentation findet
sich in der Klassenreferenz im Kapitel
CookieManager.
-
Refactoring: Die veralteten Komponenten abstractCacheManager,
cacheV4Manager, objectCacheManager und statCacheManager
wurden entfernt. Diese werden zukünftig durch den CacheManager
ersetzt.
-
Refactoring: Die veralteten Komponenten bbCodeparser wurden
aus dem Release entfernt. Als Ersatz dient die in der Version 1.8 eingeführte Komponente
AdvancedBBCodeParser.
-
Refactoring Die Klasse ImageManager
wurde einem Refactoring unterzogen. Folgende Änderungen wurden vorgenommen:
- Klasse imageManager in ImageManager umbenannt
-
Die Methode resizeImage() wurde in resizeImageOld()
umbenannt und als veraltet markiert. Diese Änderung wurde aus Kompatibilitätsgründen
vollzogen. Im nächsten Release wird diese aus der API entfernt.
-
Die neue Methode resizeImage() ersetzt nun die bisherige Implementierung.
- Die Funktion getImageAttributes() ersetzt die bisher enthaltene Methode
schowImageAttributes(). Letztere wird bis zum nächsten Release aus
Kompatibilitätsgründen noch beibehalten.
-
Die Methode resizeImage() ersetzt die bisher in der Klasse enthaltenen
Resize-Methoden. Ab dem nächsten Release werden damit resizeImageOld()
und generateThumbnail() aus dem Release entfernt.
-
RC1-Feedback:
Die Methoden __getForm(), __templatePlaceholderExists(),
__placeholderExists(), __getTemplate() und
setPlaceHolder() erzeugen nun in der PHP5-Version keinen Fehler mehr beim
Zugriff auf benachbarte Objekte im APF-DOM-Baum. Details können dem Foren-Beitrag
Fragen zu Formular-Doku
entnommen werden.
-
RC1-Feedback:
Die Action StreamMediaAction aus dem Namespace tools::media::actions
und ShowImageAction aus dem Namespace modules::socialbookmark::biz::actions
senden nun erweiterte Header bei der Auslieferung der Bilder, so dass diese vom Browser
zwischengespeichert werden können.
Die Dateien mit dem Namen adventure-codepack-* enthalten die Bibliotheken des Framework,
die Dateien mit dem Namen adventure-demopack-* die Bibliotheken plus einer Demo-Applikation.
Für Einsteiger wird empfohlen die Demo-Packs herunter zu laden. Release-Dateien mit dem Namen
adventure-configpack-* beinhalten einen Satz an Beispiel-Konfigurationen. Seit diesem
Release werden zusätzlich adventure-perfcodepack-*-Dateien angeboten. Diese enthalten
um Kommentare und Leerzeilen bereinigte Dateien, die auf Systemen ohne Byte-Code-Caching für die
Performance-Optimierung eingesetzt werden können.
Dokumentation
Folgende Dokumentationen sind zu diesem Release vorhanden:
-
Online-Dokumentation: (Aktuelles Release)
-
Offline-Dokumentation:
Subversion-Repository
Die Dateien zu diesem Release sind unter der folgenden URLs im SVN-Repository verfügbar:
SVN-Web-Ansicht: http://adventurephpfra.svn.sourceforge.net/viewvc/adventurephpfra/tags/1.9
SVN-URL: https://adventurephpfra.svn.sourceforge.net/svnroot/adventurephpfra/tags/1.9
Release-Packages
Version 1.8
Das Release 1.8 (stable) beinhaltet Bibliotheken für den Einsatz in PHP 4 und PHP 5.
Für die beiden PHP-Versionen werden jeweils eigene Pakete ausgeliefert. Getestet wurde mit und
ohne Kompatibilitätsmodus gegen die Versionen >= 5.2.6 und <= 4.4.8. Die Version ist
für den Einsatz auf Produktiv-Umgebungen freigegeben.
Wichtige Änderungen in der Version 1.8 (stable) sind:
-
Erweiterung: Seit diesem Release werden zusätzlich adventure-perfcodepack-*-Dateien
angeboten. Diese enthalten um Kommentare und Leerzeilen bereinigte Dateien, die auf Systemen
ohne Byte-Code-Caching für die Performance-Optimierung eingesetzt werden können.
-
Verbesserung: Die Benchmark-ID in der Klasse core_taglib_importdesign
wurde generischer gestaltet. Damit sind abgeleiteten Klassen in der Benchmark-Übersicht
besser erkennbar.
-
Erweiterung: Der ServiceManager gibt beim Initialisieren eines Service-Objektes
die Art der Instanziierung mit. Die relevanten Werte sind SINGLETON, SESSIONSINGLETON und NORMAL.
In diesem Zug wurde auch die Definition der Klasse coreObject um das Attribut __ServiceType
erweitert.
-
Verbesserung: Die Fehlerausgabe in der Methode Document::__loadContentFromFile()
wurde ausführlicher gestaltet, damit das Debugging erleichtert wird.
-
Verbesserung: Die Klasse MySQLHandler escapt nun Bind-Werte in der Methode
executeStatement() um SQL-Injections zu vermeiden.
-
Erweiterung: Der Registry-Namespace apf::core besitzt nun den
schreibgeschützten Wert CurrentRequestURL. Dieser beinhaltet die komplette Request-URL.
Diese Neuerung ist Grundlage für die generische URL-Generierung in den TagLibs *:mediastream
und form:captcha.
-
Erweiterung: Für erweiterte Logging-Aufgaben wurde der AdvancedLogger
hinzugefügt. Die Dokumentation der Komponente kann im Kapitel
Klassenreferenz - AdvancedLogger
nachgelesen werden.
-
Refactoring: Die html:template TagLib-Implementierung und die davon
abhängigen Klassen wurde überarbeitet. Grund war, dass da die Erweiterung des Tags
über das template:addtaglib Tag oft zu Fehlern bei der Transformation führte,
wurde in der abgeleiteten Klasse nicht die Methode registerTagLibModule() aufgerufen.
Siehe hierzu <*:mediastream- />-Tags fertig
im Forum.
-
Performance-Verbesserung: in der import()-Funktion wurden alle
include_once() durch include() ersetzt um die Performance von includes nochmals
zu steigern.
-
Bugfix: Es wurde ein Fehler in der init()-Methode der Klasse MySQLxHandler
behoben, bei dem der Debug-Mode wegen falscher Bezeichnung der Konfigurationsparameter nicht
aktiviert wurde.
-
Erweiterung: Aus einer Diskussion im
php.de-Forum
entstand die Idee des core:appendnode-Tags. Dieser importiert die Inhalte eines
beliebigen Templates in den Gültigkeit eines anderen und ermöglicht so die
Wiederverwendbarkeit von Formularen und Templates. Nach einer zusätzlichen Erweiterung
können auch die transformOnPlace()-Methoden verwendet werden um die Ausgabe zu
generieren. Die Dokumentation kann im Kapitel
Spezielle TagLibs
eingesehen werden.
-
Bugfix: Wurde der MySQLHandler ohne den connectionManager
verwendet und die Methode escapeValue() vor einer anderen aufgerufen, war die
Datenbank-Verbindung noch nicht aufgebaut.
-
Refactoring: Wie in de Roadmap angekündigt wurde der filesystemHandler
einem Redesign unterzogen. Aus dieser entstand die Komponente FilesystemManager, der
nun im tools-Namespace abgelegt wurde. Die Dokumentation kann dem Kapitel
Klassenreferenz - FilesystemManager
entnommen werden. Bitte beachten Sie, dass die Komponente filesystemHandler aus dem
core::filesystem als deprecated markiert und im nächsten Release entfernt wird.
-
Verbesserung: der Tag fcon:importdesign besitzt nun das Attribut sessionsingleton.
Ist dieses mit true belegt, wird das Model im SESSIONSINGLETON-Modus bezogen. Die
Dokumentation mit dem Hinweis auf den neuen Parameter findet sich unter
Standard-TagLibs.
-
Refactoring: Neben anderen Komponenten wurde auch die BBCode-Parser-Komponente
einem Redesign unterzogen. Die nun im Release mitgelieferte Klasse ist deutlich generischer
aufgebaut und kann wesentlich einfacher erweitert werden. Für Standard-Aufgaben werden
bereits vorgefertigte Provider mitgeliefert, die jedoch jederzeit ausgetauscht werden können.
Die Dokumentation wurde um das Kapitel
Klassenreferenz - AdvancedBBCodeParser
erweitert, das die Konfiguration, Verwendung und Erweiterung ausführlich beschreibt. Der
bisher enthaltene bbCodeParser ist mit diesem Release als deprecated markiert und wird
im nächsten Release entfernt.
-
Erweiterung: Aus einer Diskussion im
Forum
entstand die Idee eines abstrakten Media-Streamers, der im Namespace der Applikation abgelegten
Medien-Dateien (Bilder, CSS, JS, ...) direkt per Tag in die GUI einer Anwendung einbinden kann.
Hierzu wurde eine Basis-Implementierung und Tags zum Einsatz in Template-Dateien, HTML-Templates
und Formularen erstellt. Die Dokumentation der Tags kann im Kapitel
Spezielle TagLibs
eingesehen werden.
-
Erweiterung: Ebenfalls aus der Diskussion über die Implementierung des
usermanagement-Moduls
entstand die Idee eines generischen generic:importdesign-Tags, der im Gegensatz zum
fcon:importdesign-Tag auch den Namespace des einzubindenen Templates aus einem Model
bezieht. Das Release beinhaltet deshalb nun die Implementierung des Tags wie er im Forum
diskutiert wurde. Die Dokumentation kann unter
Spezielle TagLibs
eingesehen werden.
-
Bugfix: Bei den durch html_taglib_form::__createFormElement() erzeugten
Formular-Elementen wurden Context und Language nicht korrekt initialisiert.
Grund war ein Tipp-Fehler, der durch automatisierte Tests nicht abgefangen werden konnte.
-
Test-Erweiterung: Wie im Forum im Thread
Mehrsprachenfähigkeit in den Template Dateien
diskutiert, wurde vorgeschlagen, dass Templates zusätzlich durch eZ-Components ähnliche
Übersetzungstags übersetzbar sind. Die Erweiterung ist aktuell noch als TEST
gekennzeichnet, wird jedoch im nächsten Release die STABLE-Plakette erhalten.
-
Refactoring: Im Zuge des Refactoring einiger Framework-Komponenten wurde auch
der CacheManager erneuert. Auf Grund der verwendeten Provider-Logik können nun
beliebige Backends angebunden werden. Um die Komponente sofort einsetzbar zu machen, bringt das
Release bereits Implementierungen für die wichtigsten Cache-Varianten mit. Die Dokumentation
des neuen CacheManager kann unter
Klassenreferenz - CacheManager
eingesehen werden. Ein weiteres Anwendungsbeispiel kann im Artikel
How to implement view based caching (english)
eingesehen werden.
-
Erweiterung: Aus der Diskussion zur
Implementierung des usermanagement-Moduls
ergaben einige Erweiterungen bzw. Optimierungen des GenericORMapper. Die Methode
loadRelatedObjects() kann nun über das GenericCriterionObject
zusätzliche Relationen mit einbeziehen, mit Hilfe der Funktion loadNotRelatedObjects()
lassen sich Objekte laden, die keine Beziehung zu einem anderen haben. Auch hier ist es möglich
über das GenericCriterionObject zusätzliche Beziehungsdefinitionen mit in den
Ladevorgang einzubringen.
Mit Hilfe der Methoden addRelationConfiguration() und addMappingConfiguration()
lässt sich die Konfiguration des Mappers zur Laufzeit anpassen. Das ermöglicht eine
deutlich flexiblere Konfiguration.
Die Dokumentation
zur Konfiguration und Verwendung des GenericORMapper wurde um die Neuerungen erweitert und
enthält nun noch weitere Anwendungsbeispiel.
-
Bugfix: Die Generierung der Captcha-Bild-URL wurde verbessert, so dass diese
für aktiviertes und deaktiviertes URL-Rewriting und in beliebigen Unterordnern funktioniert.
-
Erweiterung: Der <form:captcha />-Tag wurde um das Attribut
clearonerror erweitert. Ist dieses mit true belegt, wird der Inhalt des
Captcha-Textfeldes geleert. Die Dokumentation des Tags kann unter
Mitgelieferte Module
eingesehen werden.
-
1.8-RC1-Feedback: Aus dem Feedback zur Version 1.8-RC1 wurden zwei Fehler im
GenericORMapper
behoben. Zum einen werden Objekt-Updates nur dann durchgeführt, wenn geänderte
Attribute vorhanden sind, zum anderen liefert die Methode __getAssociationsByObjectName()
nun nur noch relevante Assoziationen zurück.
Die Dateien mit dem Namen adventure-codepack-* enthalten die Bibliotheken des Framework,
die Dateien mit dem Namen adventure-demopack-* die Bibliotheken plus einer Demo-Applikation.
Für Einsteiger wird empfohlen die Demo-Packs herunter zu laden. Release-Dateien mit dem Namen
adventure-configpack-* beinhalten einen Satz an Beispiel-Konfigurationen. Seit diesem
Release werden zusätzlich adventure-perfcodepack-*-Dateien angeboten. Diese enthalten
um Kommentare und Leerzeilen bereinigte Dateien, die auf Systemen ohne Byte-Code-Caching für die
Performance-Optimierung eingesetzt werden können.
Dokumentation
Folgende Dokumentationen sind zu diesem Release vorhanden:
-
Online-Dokumentation: (Aktuelles Release)
-
Offline-Dokumentation:
Subversion-Repository
Die Dateien zu diesem Release sind unter der folgenden URLs im SVN-Repository verfügbar:
SVN-Web-Ansicht: http://adventurephpfra.svn.sourceforge.net/viewvc/adventurephpfra/tags/1.8
SVN-URL: https://adventurephpfra.svn.sourceforge.net/svnroot/adventurephpfra/tags/1.8
Release-Packages
Version 1.7
Das Release 1.7 beinhaltet Bibliotheken für den Einsatz in PHP 4 und PHP 5.
Für die beiden PHP-Versionen werden allerdings ab Release 1.7-BETA unterschiedliche Pakete
ausgeliefert um die Trennung der Branches vorbereiten zu können. Getestet wurde mit und ohne
Kompatibilitätsmodus gegen die Versionen >= 5.2.6 und <= 4.4.8. Die Version ist für den
Einsatz auf Produktiv-Umgebungen freigegeben.
Wichtige Änderungen in der Version 1.7 sind:
-
Bugfix connectionManager: bei mehrfacher Verwendung des connectionManagers mit gleicher Verbindung
kam es zu Interferenzen der Instanzen. Aus diesem Grund wurde das Caching auf der Verbindungen
auf den connectionManager verlagert.
-
Die Fehlerunterdrückung im MySQLHandler wurde entfernt um eine bessere Fehleranalyse bei
fehlgeschlagenen Verbindungen zu ermöglichen.
-
Bugfix frontcontrollerRequestFilter: ist bei einer Action kein Parameter angegeben führte
dies zu einer Array-Initialisierungsmeldung. Dies wurde durch saubere Vorbelegung behoben.
-
Die optionalen Parameter $URLRewriting wurden im Page- und FrontController entfernt.
Manuelles Setzen in Verbdinung mit der Registry-Konfiguration führte zu
einem Fehler. Siehe http://forum.adventure-php-framework.org/de/viewtopic.php?f=5&t=54&st=0&sk=t&sd=a&start=15#p250.
-
Erweiterung newspager-Modul: durch die Angabe des zusätzlchen Parameters
datadir in der <core:importdesign />-Direktive kann das
Datenverzeichnis beliebig gewählt und damit in anderen Umgebungen unabhängiger
ausgeführt werden. Weiterhin wurden die Fehlermeldungen verbessert.
-
Erweiterung guestbook-Modul: das Formular wurde um ein CAPTCHA zur Vermeidung von SPAM erweitert.
-
Erweiterung usermanagement-Modul: es wurde eine Beispiel-Datei zum Betrieb des Moduls und ein
Dokumentations-UML hinzugefügt.
-
Bugfix captcha-Modul: eine fehlende Abhängigkeit zum sessionManager wurde aufgelöst.
Diese führte dazu, dass die Action unter gewissen Umständen kein CAPTCHA-Bild
ausgeliefert hat.
-
Erweiterung kontakt4-Modul: das Formular wurde um ein CAPTCHA zur Vermeidung von SPAM erweitert.
-
Bugfix comment-Modul: die Generierung der CAPTCHA-Bild-URL wurde korrigiert, so dass diese auch
im normalen URL-Modus funktioniert. Bisher wurde hier nur von aktiviertem URL-Rewriting
ausgegangen. Weiterhin wurden Farbformatierungen entfernt, die in Abhängigkeit zur bisherigen
Dokumentationsseite standen.
-
Bugfix <fcon:importdesign />-Tag: das Model-Objekt wurde nicht eingebunden, da der Tag
davon ausging, dass der import()-Aufruf bereits in der Bootstrap-Datei beinhaltet ist.
-
Erweiterung Framework: die Komponenten linkHandler und
frontcontrollerLinkHandler codieren Ampersands um in Links korrektes HTML
liefern zu können. Da bei generierten URLs eine Weiterleitung via header()
fehlschlägt, wurde der HeaderManager eingeführt. Dieser löst die
Ampersands auf und leitet korrekt auf die gewünschte Zielseite weiter. Die Dokumentation
dazu ist bisher nur im
SVN
verfügbar. Die Dokumentation ist - wie auch das Feature selbst - für Version 1.8 geplant.
-
Verbesserung ui_getstring: die in der Klasse ui_getstring enthaltenen
Fehlermeldungen wurden optimiert und erweitert um das Debugging zu erleichtern. Die Klasse ist
die Basis für die <*:getstring />-Tags.
-
Bugfix Logger: die Initialisierung des Log-Verzeichnisses wurde in die Methode
flushLogBuffer() des Loggers verschoben. Hintergrund ist, dass beim Erstellen
des Loggers noch keine Verzeichnisstruktur angelegt werden muss. Insbesondere im demopack kam es
deswegen zu skurilen Fehlermeldungen auf Grund von fehlenden Schreibrechten. Weiterhin bedeutet
diese Änderung eine Performance-Optimierung, falls keine Logs geschrieben werden müssen.
-
Bereinigung errorManager: die Nur-Text-Ausgabe im errorManager wurde entfernt, da bei Verwendung
des PageControllers immer sichergestellt ist, dass die Fehlerseite in grafisch aufbereiteter
Form angezeigt werden kann.
-
Verbesserung Logger: die Initialisierung des Log-Verzeichnisses wurde auf absolute Pfade
umgestellt. Relative können während des shutdown falsch ausgewertet werden und es kommt
zu unerklärlichen Fehlern. Um in den Applikationen sicher zu gehen, dass Logs korrekt
geschrieben werden können, sollte das LogDir immer mit einem absoluten Pfad
belegt werden. Siehe hierzu
Klassenreferenz - Logger.
-
Erweiterung <form:genericval />-Tag: das Tag wurde so erweitert, dass nun
auch eine Validierung per regulärem Ausdruck möglich ist. Um dies zu erreichen, erwartet
das Attribut validator den Wert RegExp, der den in einem weiteren
Attribut (regexp) gegebenen regulären Ausdruck zur Validierung des
gewünschten Elementes einsetzt. Die Dokumentation unter
Generischer Validator
wurde entsprechend erweitert.
-
Bugfix myValidator: die Methode validateNumber() der Klasse
myValidator validiert nun auch negative und fließkomma Zahlen als
korrekte Nummern. Zur Validierung wird nun die PHP-Funktion is_numeric()
eingesetzt.
-
Änderung API: wie angekündigt wurde die Methode getFormElementsByType()
aus der Klasse html_taglib_form entfernt.
-
Erweiterung Module: das Framework besitzt nun ein drei neue Module: captcha,
genericormapper und usermanagement. Das Modul captcha
kommt bereits beim Gästebuch zum Einsatz um SPAM zu vermeiden. Die Dokumentation des neuen
Moduls findet sich unter CAPTCHA-Taglib.
Das Modul genericormapper ist eine OR-Mapper-Komponente, die es ermöglicht, Objekte
auf generische Weise in einer relationalen Datenbank ablegen zu können. Die Dokumentation
zum im beta-Status befindlichen Modul findet sich unter
Generischer OR-Mapper.
Das Modul usermanagement basiert auf dem generischen OR-Mapper und implementiert ein
allgemeingültiges Benutzer-, Gruppen- und Rollen-Management. Auch diese Komponente befindet
sich noch im beta-Stadium. Die Dokumentation zu diesem Modul ist noch in Bearbeitung.
-
Korrekturen Sandbox: es wurden Korrekturen hinsichtlich neuer Features und Texte vorgenommen.
-
Bugfix Tutorials: Die Downloads des Tutorials
Webseite erstellen
wurden auf die Version 1.7 migriert. Zum Betrieb des Beispiels muss jedoch nun das passende
codepack-Release heruntergeladen werden. Hinweise dazu finden sich im README des Paketes.
-
Erweiterung form-Taglibs: zur Generierung von dynamischen Formularen wurde das
<form:marker />-Tag eingeführt. Zusammen mit den neuen Methoden
- addFormContentBeforeMarker()
- addFormContentAfterMarker()
- addFormElementBeforeMarker()
- addFormElementAfterMarker()
der Klasse html_taglib_form ist es nun möglich, Formulare komfortabel
dynamisch zu erstellen. Weiterhin wurde die Methode addFormElement() hinsichtlich
der neuen Logik zur Erstellung von dynamischen Formularelementen angepasst. Die Dokumentation
wurde im Kapitel Formulare um den Bereich
Dynamische Formulare
ergänzt. Details zur Feature-Diskussion können dem Foren-Thread
html_taglib_placeholder gesucht
entnommen werden.
-
Update Dokumentation: die komplette Dokumentation wurde hinsichtlich Sprungmarken überarbeitet.
Jede Dokumentationsseite verfügt nun über eine Quicknavi.
-
Bugfix ui_element: Im Fall von '0'-Werten wurde das Presetting von
Formular-Elementen nicht korrekt durchgeführt. Siehe hierzu auch
Presetting von Formularwerten beim Wert '0' fehlerhaft.
-
Erweiterung Tutorials: Das aus einer Diskussion im Forum entstandene Tutorial "Minimales Modul
mit dem APF" kann unter
http://forum.adventure-php-framework.org/de/viewtopic.php?f=6&t=44
eingesehen werden.
-
Erweiterung Registry: die Standard-Registry-Werte wurden um die Direktive
LibPath ergänzt. Diese enthält den dynamisch generierten Basis-Pfad
zur APF-Code-Basis und kann zur Addressierung von Inhalte verwendet werden. Die Direktive ist
schreibgeschützt und kann zur Laufzeit nicht verändert werden. Details können der
Dokumentation unter Grundlagen
entnommen werden.
-
API-Änderung: die in 1.6 hinzugekommene Methode getFormElementsByType() wurde in
getFormElementsByTagName() umbenannt. Letztere erwartet nicht mehr den Klassen-Namen
der Tag-Implementierung der gewünschten Elemente, sondern den Tag-Namen (z.B. "form:text")
als Parameter.
-
Änderung Fehler-Seite: die Errorpage wurde auf englisch übersetzt.
-
Core-Änderung Framework: Implementierung und Dokumentation der Registry Komponente und
Entfernen des ApplicationManagers. Durch diese Änderungen sind Anpassungen der
Bootstrap-Dateien notwenig. Details zur Migration auf Version 1.7 kann unter
Migration von Version 1.6 auf 1.7
nachgelesen werden. Die neue Variante der Konfiguration und der Initialisierung des Frameworks
erlaubt es Projekte schneller aufzusetzen und lässt die Basis-Konfiguration entfallen.
-
Umstellung Build: das Build der Pakete wurde umgestellt. Pakete mit dem Architektur-Kürzel
php4 sind für den Einsatz auf PHP-4-Umgebungen erstellen, Pakete mit
php5 für PHP-5-Umgebungen und Pakete mit noarch können
auf jeder Umgebung eingesetzt werden.
-
Erweiterung form-Taglibs: die Formular-Tags wurden um die Taglib form:addtaglib
erweitert. Mit Hilfe dieses Tags ist es möglich, beliebige weitere Tags in ein Formular
einzubinden und für den speziellen Anwendungsfall noch nicht vorhandene Funktionalität
hinzuzufügen. Durch die Einbindung per Tag bleibt die eingebundene Funktionalität zudem
wiederverwendbar. Die Dokumentation des Tags findet sich auf der
Standard TagLibs-Seite.
Die Dateien mit dem Namen adventure-codepack-* enthalten die Bibliotheken des Framework,
die Dateien mit dem Namen adventure-demopack-* die Bibliotheken plus einer Demo-Applikation.
Für Einsteiger wird empfohlen die Demo-Packs herunter zu laden. Release-Dateien mit dem Namen
adventure-configpack-* beinhalten einen Satz an Beispiel-Konfigurationen.
Dokumentation
Folgende Dokumentationen sind zu diesem Release vorhanden:
-
Online-Dokumentation: (Aktuelles Release)
-
Offline-Dokumentation:
Subversion-Repository
Die Dateien zu diesem Release sind unter der folgenden URLs im SVN-Repository verfügbar:
SVN-Web-Ansicht: http://adventurephpfra.svn.sourceforge.net/viewvc/adventurephpfra/tags/1.7
SVN-URL: https://adventurephpfra.svn.sourceforge.net/svnroot/adventurephpfra/tags/1.7
Release-Packages
Version 1.6
Das Release 1.6 beinhaltet Bibliotheken für den Einsatz in PHP 4 und PHP 5. Diese
Version ist - genau wie die Vorgängerversion 1.5 - eine Kompatibilitätsversion, die noch
nicht alle Features von PHP 5 verwendet, zu dieser jedoch voll kompatibel ist. Getestet wurde mit
und ohne Kompatibilitätsmodus gegen die Versionen >= 5.2.1 und <= 4.4.6. Die Version
ist für den Einsatz auf Produktiv-Umgebungen freigegeben.
Wichtige Änderungen in der Version 1.6-*-php4_php5 sind:
Auch in diesem Release gelten die Hinweise der Version 1.5 zur Einbindung von Software-Komponenten
per import()!
Die Dateien mit dem Namen adventure-codepack-* enthalten die Bibliotheken des Framework,
die Dateien mit dem Namen adventure-demopack-* die Bibliotheken plus einer Demo-Applikation.
Für Einsteiger wird empfohlen die Demo-Packs herunter zu laden. Release-Dateien mit dem Namen
adventure-configpack-* beinhalten einen Satz an Beispiel-Konfigurationen.
Dokumentation
Folgende Dokumentationen sind zu diesem Release vorhanden:
-
Online-Dokumentation: (Aktuelles Release)
-
Offline-Dokumentation:
Subversion-Repository
Die Dateien zu diesem Release sind unter der folgenden URLs im SVN-Repository verfügbar:
SVN-Web-Ansicht: http://adventurephpfra.svn.sourceforge.net/viewvc/adventurephpfra/tags/1.6
SVN-URL: https://adventurephpfra.svn.sourceforge.net/svnroot/adventurephpfra/tags/1.6
Release-Packages
Version 1.5
Das Release 1.5 beinhaltet Bibliotheken für den Einsatz in PHP 4 und PHP 5. Diese
Version ist - genau wie die Vorgängerversion 1.4 - eine Kompatibilitätsversion, die noch
nicht alle Features von PHP 5 verwendet, zu dieser jedoch voll kompatibel ist. Getestet wurde mit
und ohne Kompatibilitätsmodus gegen die Versionen >= 5.2.1 und <= 4.4.6. Die Version
ist für den Einsatz auf Produktiv-Umgebungen freigegeben. Der Fokus des Releases liegt
auf der Übersetzung der Dokumentation und der Tutorials ins Englische.
Wichtige Änderungen in der Version 1.5-*-php4_php5 sind:
-
Installation und Konfiguration eines Deutsch- und Englisch-spachigen Supportforums. Das Forum
kann unter
http://forum.adventure-php-framework.org/de
erreicht werden.
-
Test der UTF-8-Verarbeitung der Framework-Komponenten. Der Test wurde im Rahmen der Entwicklung
einer Backend-Applikation für die Streaming-Server-Verwaltung
(http://streamadmin.nmm.de.nmm.de) erfolgreich durchgeführt. Das Programm basiert
auf der Version 1.4 mit allen verfügbaren Patches.
- Erweiterung mehrerer Applikationen auf Mehrsprachigkeit.
- Übersetzung der Dokumentation ins Englische.
-
Übersetzung der Tutorials ins Englische. Hier sind noch die beiden Tutorials
Kontaktformular und Gästebuch offen.
- Einführung eines zweisprachigen Menüs.
-
Bereinigung der Methode isButtonPushed() aus der Klasse
baseController. Die Funktionalität steckt komplett in den Formular-TagLibs.
-
Erweiterung des frontcontrollerLinkHandler um die Methode
generateURLParams() um ein Parameter-Array für die Verwendung mit der
Methode generateLink() aus den Informationen Namespace, Action-Name und einem
Parameter-Satz generieren zu können. Eine detaillierte Dokumentation findet sich unter
FrontController, Kapitel 1.4.3
erreicht werden.
-
Das Bugtacking wurde auf das Forum verlagert. Bugs bitte zukünftig unter
http://forum.adventure-php-framework.org/de/viewforum.php?f=8
berichten.
-
Das neue Release enthält nun eine
Klassenreferenz der wichtigsten
Tools des Frameworks. Hier finden Sie Möglichkeiten der Verwendung sowie Anwendungsbeispiele.
-
CAPTCHA-SPAM-Schutz für das Kommentar-Modul: das Kommentar-Modul wurde um einen SPAM-Schutz
via CAPTCHA erweitert, da dieses häufig zum Ziel vom SPAM geworden ist. Hierzu wurde die
Anwendung um eine FrontController-Action erweitert worden, die sich um die Auslieferung des
Bildes kümmert und die Busines-Schicht wurde um das Handling des CAPTCHA-Strings angepasst.
- Die Roadmap wurde üerarbeitet.
-
Die MySQLHandler-Komponente wurde um die öffentliche Methode escapeValue()
erweitert, die zum escapen von Zeichenketten herangezogen werden kann, die später in MYSQL-
Statements verwendet werden.
-
Die Bugfixes für FrontController und frontcontrollerLinkHandler
wurden komplett in das Release übernommen.
-
Bugfix für das Kontaktformular wie im Forum unter
http://forum.adventure-php-framework.org/de/viewtopic.php?f=8&t=19
beschrieben.
-
Änderungen am bbCodeParser, damit FrontController-Auslieferung von Bildern
unterstützt wird und Bugfixes wegen falscher Generierung der FrontController-Action-Links
im non-rewrite Modus.
-
Erweiterung des stringAssistant um die Methode generateCaptchaString
zur Generierung eines CAPTCHA-Strings beliebiger Länge.
- Überarbeitung der README-Dateien im adventure-demopack-*.
- Allgemeine Bugfixes und Performance-Verbesserungen.
Auch in diesem Release gelten die Hinweise der Version 1.4 zur Einbindung von Software-Komponenten
per import()!
Die Dateien mit dem Namen adventure-codepack-* enthalten die Bibliotheken des Framework,
die Dateien mit dem Namen adventure-demopack-* die Bibliotheken plus einer Demo-Applikation.
Für Einsteiger wird empfohlen die Demo-Packs herunter zu laden.
Dokumentation
Folgende Dokumentationen sind zu diesem Release vorhanden:
-
Online-Dokumentation: (Aktuelles Release)
-
Offline-Dokumentation:
Subversion-Repository
Die Dateien zu diesem Release sind unter der folgenden URLs im SVN-Repository verfügbar:
SVN-Web-Ansicht: http://adventurephpfra.svn.sourceforge.net/viewvc/adventurephpfra/tags/1.5
SVN-URL: https://adventurephpfra.svn.sourceforge.net/svnroot/adventurephpfra/tags/1.5
Release-Packages
|
|
|
|