Roadmap
Aus APF Wiki [de]
Die Roadmap beschreibt den Funktionsumfang der zukünftigen Versionen des Frameworks. Sie basiert jeweils auf der aktuellen Planung des Entwickler-Teams, kann jedoch durch Einstreuen von weiteren Anforderungen beeinflusst werden. Hierzu eignet sich insbesondere das Neue Features-Forum
Der Release-Plan für die zukünftigen Versionen gestaltet sich wie folgt:
Inhaltsverzeichnis |
Version 2.xx
Die Ideen für eine Version 2.0 werden auf der Seite Features APF 2.0 beschrieben und im Forum unter 2.xx Ideensammlung diskutiert.
- Invalide Formulare sollen beim Absenden bereits hochgeladene Dateien zwischen speichern können (siehe [1]).
- Erzeugung von Document-Controllern über den DI-Container "on-demand" (=sofern gewünscht).
Einige der Ideen sind bereits in die Releases der 1.X-Serie enthalten oder eingeplant.
Version 1.16
- Refactoring der <*:getstring />-Tags in den core-Bereich, damit diese ohne <*:addtaglib /> verwendet werden können.
Version 1.15
Wie unter Release + Dokumentation besprochen, beinhaltet das Release 1.14 zum heutigen Zeitpunkt bereits einen sehr großen Umfang an Änderungen und Erweiterungen. Die folgenden Features wurden daher von 1.14 nach 1.15 verschoben:
- Datenbank-Treiber auf Basis von PDO, damit prepared statements einfacher unterstützt werden.
- Evaluation von Datenbank-übergreifenden Statements mit dem GORM (Diskussion siehe GORM - Beziehungen über mehrere Datenbanken).
- Erweiterung des Update-Tools des GORM um das erweiterte Index-Handling (Diskussion siehe Indices).
- [Erledigt] Erweiterung des Objekt-Typs "Rolle" um eine Beschreibung für die Rolle zur einfacheren Administration des Usermanagement-Moduls (siehe Diskussion Usermanagement I).
- [Erledigt] Erweiterung der Sichtbarkeits-Berechtigungen um die Qualität Lesen, Schreiben, Löschen, ... (siehe Diskussion Usermanagement II).
- Transaktions-Handling für den GORM (Proposal siehe Transaktions-Handling für den GORM (Release 1.12))
- Erweiterung Filter- und Validator-Config (Proposal siehe Erweiterung Filter- und Validator-Config (Release 1.12))
- Um das neue Gästebuch auch in eigenen Applikationen als vollwertiges Modul einsetzen zu können, soll die Datenschicht um eine Lösch-Funktion erweitert werden.
- Das Beziehungs-Management des GORM soll so erweitert werden, dass Beziehungen ebenfalls ein Erzeugungs- und Bearbeitungsdatum erhalten. Weiterhin soll es möglich sein, Qualitäten von Beziehungen (1:1, 1:n, n:1, n:m) zu definieren und vom GORM prüfen zu lassen (Proposal siehe Erweiterung Beziehungs-Management GORM).
- Erweiterung GORM-Konfiguration zur Definition von Storage-Engines pro Tabelle (Setup- und Update-Tool erweitern!)
- Flexibilisierung des Loggers (evtl. Zusammenführen mit dem AdvancedLogger) (Diskussion siehe Logger automatisch flushen).
- Erweiterung FilesystemManager wie unter [2] beschrieben.
- Erweiterung UMGT um Permanent-Login per Cookie ([3]).
- HTML5 Unterstützung für Formulare (neue Formularelemente, Validierung, Clientvalidierung nur als Fallback wenn möglich) ([4]).
- Mehrsprachigkeit out-of-the-box mit dem GORM? (siehe [5]).
- template_taglib_addtaglib in das APF aufnehmen (siehe [6]).
- [Erledigt] Unterstützung von Sockets für MySQL-Connections (siehe [7]).
- [Erledigt] Umstellung des UMGT auf Domänen-Objekte.
- [Erledigt] Umstellung ServiceManager/DIServiceManager auf Interface APFService/APFDIService um Trennung zu APFObject zu erreichen.
- [Erledigt] Einführung einer Setup-Methode für DI-Services inkl. Session-Wakeup.
- [Erledigt] Umstellung UMGT auf DIServiceManager zur Konfiguration der Services.
- [Erledigt] Erweiterung des UMGT-Daten-Modells zur einfacheren Pflege.
- [Erledigt] Erweiterung Funktionalität Filter-Chain um Filter einfacher vor oder nach den bereits registrierten Filtern einhängen zu können (ebenso während der Laufzeit!)
- [Erledigt] Erweiterung des GORM-Update-Tool, damit Beziehungs-Umbenennungen erkannt werden.
- [Erledigt] Erweiterung des GORM-Domain-Objekt-Support um Type-Hints innerhalb der Code-Dokumentation und Erweiterung der Signatur der Base-Klassen um weitere Convenience-Methoden.
- [Erledigt] Integration UMGT-Änderungen in die Sandbox.
- [Erledigt] Erweiterung Singleton- und SessionSingleton-Implementierung um mehrfache, benannte Instanzen eines Services zu erlauben. Dies ist notwendig um per DIServiceManager mehrere benannte Instanzen einer identischen Implementierung (z.B. GORM) zu erzeugen und zu verwalten.
- Umstellung der UMGT-GUI auf konfigurierbare GUI-Beschriftung (Language-Files) für die Sprachen Deutsch und Englisch.
- [Erledigt] Umbenennung des Input-Parameter für URL-Rewriting (siehe [8]).
Die fertigen Features können aus dem SVN bezogen werden.
Zur Migration auf die neue Version sind die unter Migration von 1.14 auf 1.15 beschriebenen Schritte notwendig.
Version 1.14
- [Erledigt] Umstellung der Steuerung auf "Front-Controller-only". Damit wird es leichter, die Input- und Output-Filter-Chains zu koordinieren.
- [Erledigt] Überarbeitung des OnlyHTMLEntitiesFilter, damit dieser nur dann HTML-Ersetzung vornimmt, wenn der Input-Filter dies nicht schon erledigt hat. Weiterhin soll der Filter den Zeichensatz des Formulars beachten, damit die Erstellung korrekt erfolgt.
- [Erledigt] Refactoring des ServiceManager/DIServiceManager auf ein statisches Interface zur Performance-Steigerung.
- Erweiterung HeaderManager um convenience-Methode um basierend auf der aktuellen URL direkt auf HTTPS weiterleiten zu können.
- [Erledigt] Erweiterung des GCO (siehe Verschachtelung für Criterion-Objekte?).
- [Erledigt] Erweiterung des GenericCriterionObject um die Verwendung von größer/kleiner Vergleichen zu ermöglichen (siehe GORM -> Beziehungen mit Kriterien-Objekt laden).
- [Erledigt] Erweiterung des GORM zur Behandlung von Domänen-Objekten (siehe GORM - Modellierungserweiterung).
- Erweiterung Sandbox um Login-Mechanismus mit automatischem Setup des UMGT.
- [Erledigt] Refactoring / Erweiterung Link-Generierungs-Mechanismus um bestehende Anwendungen einfach mit einem neuen URL-Layout zu betreiben.
- [Erledigt] Refactoring Front-Controller + Action Definition (optionale Input-Klasse, bessere API, Action-Typ als Konstanten, ...).
- [Erledigt] Erweiterung Formular-Filter um die Möglichkeit einen regulären Ausdruck direkt für ein Feld angeben zu können.
- [Erledigt] Einführen einer neuen Einstellung um das Character-Set zu definieren um Zeichensatz-Probleme zu vermeiden.
- [Erledigt] Erweiterung der Passwort-Generierung im Usermanagement-Modul (Diskussion siehe Umgt - Hardcoded Salt ).
Die fertigen Features können aus dem SVN bezogen werden.
Zur Migration auf die neue Version sind die unter Migration von 1.13 auf 1.14 beschriebenen Schritte notwendig.
Version 1.13
- [Erledigt] Bugfixing & allgemeine Verbesserungen
- [Erledigt] Refactoring des "alten" Gästebuch-Moduls und des Newspager auf aktuelle Technologien (Nutzung von jQuery statt nativer AJAX-Implementierung, Entfernen der get()-/set()-Methoden).
- [Erledigt] Vereinheitlichung SimpleSelectValidator und DefaultSelectValidator.
- [Erledigt] Erweiterung Konfiguration (Proposal siehe Erweiterung Konfiguration, Diskussion siehe Erweiterung Konfiguration (Release 1.12))
- [Erledigt] Erweiterung Pager (Erweiterung Pager (Release 1.12), Dokumentation der Änderungen siehe Migration von 1.12 auf 1.13)
- [Erledigt] Umstellung aller mit dem APF ausgelieferten Komponenten auf Exceptions.
- [Erledigt] Anpassung Front-Controller-Konfiguration: entfernen des Sub-Namespaces "actions", da dieser nicht wirklich benötigt wird. Dieser ist noch aus älteren Versionen aus Konventions-Gründen enthalten (Migration siehe Migration von 1.12 auf 1.13#Frontcontroller).
- [Erledigt] bulk setting für Platzhalter von Formularen (siehe setPlaceholder - multiple version?).
- [Erledigt] Fluent Interface für das GenericCriterionObject (siehe Fluent Interface des GenericCriterionObject).
- [Erledigt] Einbau einer Möglichkeit um den Attribut-Whitelist-Filter für Formulare erweitern zu können (siehe Whitelist von Form control erweitern).
- [Erledigt] Erweiterung des CacheManager um eine CMS-Seite mit unterschiedlichen Modulen cachen zu können (siehe Erweiterung CacheManager; Quellcode findet sich im SVN ab Revision 1000).
- [Erledigt] Erweiterung des PagerManager um Methoden zur Abfrage von Seiten-Informationen (siehe Pager -> Weiterleitung auf die richtige Seite, Dokumentation der Änderungen siehe Migration von 1.12 auf 1.13).
- [Erledigt] Erweiterung des aktuellen Input- und Output-Filter-Mechanismus, um mehrere Filter registrieren zu können (Filter-Chain für Input- und Output-Filter). Details können der Diskussion um die Erweiterung der htmlheader-Extension entnommen werden.
Die fertigen Features können aus dem SVN bezogen werden.
Version 1.12
- [Erledigt] Bugfixing & allgemeine Verbesserungen
- [Erledigt] Umstellung Page-Controller auf Exceptions.
- [Erledigt] Refactoring der APF-API: dedizierte Methoden statt generische get()- und set()-Methoden! Hinweise zu den Änderungen finden sich auf der Seite API-Änderungen in Version 1.12.
- Umbenennung diverser Klassen um dem JAVA-Coding-Standard zu genügen (siehe auch API-Änderungen in Version 1.12):
- [Erledigt] connectionManager -> ConnectionManager
- [Erledigt] configurationManager -> ConfigurationManager
- [Erledigt] coreObject -> APFObject
- [Erledigt] Beerdigung des PHP4-Zweiges
- [Erledigt] Zusätzliche Indizes für Setup-/Update-Tool (Proposal siehe Zusätzliche Indizes für Setup-/Update-Tool GORM)
- [Erledigt] Erweiterung <core:appendnode />-Tag (Proposal siehe Erweiterung <core:appendnode />-Tag (Release 1.12))
- [Erledigt] Umstellung GORM auf Exceptions statt trigger_error()
- [Erledigt] Einführung eines "Timecaptcha"-Feldes zum Schutz von Formularen.
- [Erledigt] Die Formular-Validatoren sollen zukünftig die Fehler-Markierung nicht mehr per Inline-Style sondern per CSS-Klassen erzeugen. Hierzu soll eine definierte Klasse an das Formular-Element angehängt werden, das vom Entwickler gestyled werden kann (Proposal siehe Weiterentwicklung Formular-Validierung).
- [Erledigt] Erweiterung Formular-Validatoren: es soll möglich sein, spezielle Listener je nach Validator anzusteuern (Proposal siehe Spezielle Validator-Listener).
- [Erledigt] Das GORM-Setup- und -Update-Tool soll die Möglichkeit erhalten, den Datentyp für die nummerischen Spalten zu definieren. Bisher ist nur "INT" möglich, durch eine neue Methode sollen auch andere Daten-Formate möglich sein (ist mit Revision 872 im SVN verfügbar).
- [Erledigt] Aufräum-Arbeiten des Debug-Modus der DB-Treiber (Proposal siehe datenbanktreiber - debugmode und exceptions).
- [Erledigt] Erweiterung umgt-Modul um Rechte-Management über Proxy-Objekte. Siehe Diskussion unter Benutzerverwaltung integrieren, bzw. Proposal unter Sichtbarkeits-Berechtigungen im umgt-Modul.
Version 1.11
- Refactoring der Formular-Taglibs (Proposal siehe Refactoring Form-Taglibs (Release 1.11))
- Erweiterung Iterator-Tag (Proposal siehe item:addtaglib & item:getstring (Release 1.11))
- Erweiterung umgtManager (Proposal siehe Erweiterung umgtManager (Release 1.11))
- Erweiterung GenericORMapper (Proposal siehe Erweiterung GORM (Release 1.11))
- Erweiterung GORM-Setup/-Update (Proposal siehe Erweiterung GORM-Setup (Release 1.11))
- Bugfixing & allgemeine Verbesserungen
Die folgende Auflistung zeigt die Inhalte der älteren Releases:
Version 1.10
- Erweiterung der PHP 5 Kompatibilität (Einführung der üblichen Sprachkonstrukte)
- Erweiterung der Funktion des GenericORMappers (Gleichzeitiges Löschen von Elementen während des Speicherns von Bäumen)
- Neue Komponente DIServiceManager als expliziten dependency injection Container. Bisher fungierte der ServiceManager bereits als indirektes Mittel für dependency injection.
- Redesign der Formular-Validierung inkl. Einführung der Mehrfachvalidierung.
- Bugfixing & allgemeine Verbesserungen
Version 1.9
- Implementierung eines CookieManager analog zum SessionManager
- Ermöglichen einer mehrfachen Validierung von Formularfeldern.
- Request- und Response-Filter über die Registry konfigurierbar machen.
- Filter für Form-Felder einführen.
- Überarbeitung des Usermanagement und Dokumentation der Komponente.
- Bugfixing & allgemeine Verbesserungen
Version 1.8
- Optimierung und Weiterentwicklung des GenericORMapper und des darauf aufsetzenenden usermanagement-Moduls.
- Neuentwicklung des bbCodeParsers nach Anforderungen aus dem Forum.
- Implementierung einer AdvancedLogger-Komponente, die durch die APF-Mechanismen konfiguriert werden kann.
- Tutorial für die RSS-Ausgabe von bestehenden Seiten.
- Neuentwicklung des CacheManagers.
- Redesign des filesystemHandler.
- Implementierung eines HeaderManager als Wrapper für die PHP-Funktion header() gemäß Wunsch im Forum.
- Einführung eines Media-Streamers. Dieser kann per Tag eingebunden werden und beliebige Medien aus definierten Namespaces ausgeben. Das Modul bringt dabei nicht nur den Tag zur Einbindung in Templates und Formulare mit, sondern beinhaltet auch die relevante FrontController Action.
- Verfassen des Artikels "behind the site" für die neue Dokumentationsseite.
- Bugfixing & allgemeine Verbesserungen
Version 1.7
- Redesign der Dokumentationsseite inkl. Suchmaschinen-Optimierung
- Einführen der Registry und Ersetzen des ApplicationManagers für konfigurationsloses einsetzen des Frameworks.
- Einführung einer OR-Mapper-Komponente, die nicht nur Objekte in einer relationalen Datenbank abbilden kann (Table-Data-Gateway, Row-Data-Gateway), sondern komplette Objektbäume laden und Persistieren kann (GenericORMapper).
- Auslieferung eines Usermanagement-Moduls, das generisch für verschiedene Applikationen eingesetzt werden kann. Das Modul basiert auf dem generischen OR-Mapper.
- Weitere Tutorials (Behind the site) und Übersetzung der restlichen Dokumentation.
- Auslieferung von getrennten Releases für PHP4 und PHP5.
- Bugfixing & allgemeine Verbesserungen
Version 1.6
- Übersetzung der restlichen Tutorials
- Erweiterung der Tutorials und Einsteiger-Materialien (FrontController!)
- Tutorial für Frontcontroller-basiertes Login-Formular bzw. Bild-Ausgabe via Action
- Singleton-Klasse um SessionSingleton-Klasse erweitern
- Einfühung connectionManager zur Abstraktion von DB-Treibern
- Einführung eines SQLite DB-Treibers
- Bugfixing & allgemeine Verbesserungen
- CAPTCHA-Formular-Control
- Spam-Schutz für Gästebuch inkl. Tutorial und Dokumentation