dbXapp 2.0
RAD, CMS, Module und Runtime-IDE fuer dbXapp
Loading...
Searching...
No Matches
dbXapp Dokumentation

dbXapp ist ein PHP-basiertes System fuer modulare Webanwendungen, CMS-Seiten, Admin-Werkzeuge, Datenbankmodelle, Formulare, Reports und eine laufzeitnahe Entwicklungsumgebung. Die zentrale Idee ist: die Infrastruktur liegt im Kernel, Module beschreiben Fachlogik, Templates beschreiben Ausgabe, DD/FD beschreiben Daten und Eingaben.

Diese Dokumentation ist fuer Menschen und KI-Agenten geschrieben. Menschen sollen schnell verstehen, wie dbXapp gedacht ist. KI-Agenten sollen einen verbindlichen Handlungsrahmen bekommen, damit Erweiterungen nicht an der Systemarchitektur vorbei gebaut werden.

Request-, Modul-, Template- und Interpreter-Ablauf

Was dbXapp leisten soll

  • Content-getriebene Frontends mit CMS-Seiten, Permalinks, Medien, Mehrsprachigkeit und Modul-Inclusion.
  • Parameter-getriebene Administration mit Reports, Formularen, DD-Sync, Konfiguration, Cache, Sessions, Systemmeldungen und Runtime-Editoren.
  • Wiederverwendbare Module, die mehrfach auf einer Seite laufen koennen, ohne sich ueber Parameter, Targets oder UI-State gegenseitig zu stoeren.
  • Eine RAD- und WYSIWYG-Laufzeit-IDE ueber dbx_edit, die Templates, Seitenbereiche, Modulquellen und teilweise Formularoberflaechen direkt in der Anwendung bearbeitbar macht.
  • Standardisierte Datenzugriffe, Formulare, Reports, Ajax-Aktualisierungen, Fensterdialoge, Confirm-Dialoge und UI-State-Verwaltung.

Lesepfad

Wer dbXapp neu kennenlernt, sollte zuerst die System- und Routing-Kapitel lesen. Wer konkret entwickeln will, folgt danach den Leitfaeden zu dbxTPL, dbxDB, dbxForm, dbxReport, JavaScript und Modulaufbau. Fuer Design- oder Shop-Aufgaben gibt es jeweils einen erklaerenden Leitfaden fuer Menschen und eine strukturierte, verbindliche Arbeitsreferenz fuer KI-Agenten.

Fachliche Dokumentpaare

Bereich Fuer Menschen Fuer KI-Agenten
Design, Themes und Skins Design, Themes und Skins Design-KI-Referenz
Shop Shop-Leitfaden Shop-KI-Referenz

Die Menschen-Leitfaeden erklaeren Ziel, Aufbau und Arbeitsablaeufe. Die KI-Referenzen enthalten zusaetzlich feste Invarianten, kanonische Pfade, Aufgabe-zu-Datei-Zuordnungen, verbotene Abkuerzungen und Mindesttests. Bei Widerspruechen muss zuerst der aktuelle Code geprueft und danach beide Dokumente gemeinsam berichtigt werden.

Grundregeln

  1. Kernel-Klassen und zentrale JavaScript-Libs werden genutzt, nicht umgangen.
  2. Templates aus /tpl sind die Quelle der Ausgabe. Der Template-Editor zeigt diese Dateien roh an und darf keine [modul=...]-Aufrufe auswerten.
  3. dbxInterpreter laeuft bei der normalen Webausgabe, auch bei aktivem dbx_edit. Nur der Template-Editor selbst muss Modulaufrufe und Marker als Quelltext behandeln.
  4. Die Ausgabe-Pipeline interpretiert nur einfache Marker: [inc], [tpl] und [modul].
  5. Datenzugriff laeuft ueber dbxDB; Datenstruktur ueber dbxDD; Formulare ueber dbxForm; Listen, Suche, Sortierung, Pagination und Aktionen ueber dbxReport.
  6. Ajax laeuft ueber ajax.js; Fenster ueber openWin; Rueckfragen ueber confirm.js; UI-State ueber core.js.
  7. Module werden ueber URL-Parameter oder Content-Marker aufgerufen. Beide Wege nutzen dieselbe Modul- und Template-Infrastruktur.
  8. Wiederholbare Modulbereiche nutzen geschuetzte Modulvariablen und eindeutige Targets wie target_{i} oder dbx_target_{i}.

Minimaler Modulablauf

dbx/modules/myModule/
myModule.class.php Router: dbx_run1/dbx_run2 auswerten
include/myModuleList.class.php fachliche Liste
include/myModuleForm.class.php fachliches Formular
tpl/htm/list.htm Report- oder Panel-Template
tpl/htm/form.htm Formular-Template
dd/myItem.dd.php Datenstruktur
fd/myItem-form.fd.php Formularfelder

Admin-Aufruf:

?dbx_modul=myModule&dbx_run1=list

Content- oder Template-Inclusion:

[modul=myModule]dbx_run1=list[/modul]

Verbindlicher Entwicklungsablauf

  1. Vorhandenes Modul, DD, FD, Template und Report-Pattern lesen.
  2. Datenmodell ueber DD/FD planen oder vorhandene DD/FD nutzen.
  3. Ausgabe als Template bauen, nicht als grossen PHP-String.
  4. Datenzugriff mit dbxDB schreiben.
  5. Fuer Eingaben dbxForm verwenden.
  6. Fuer Listen, Suche, Sortierung, Pagination und Aktionen dbxReport verwenden.
  7. Ajax-, Confirm-, OpenWin- und UI-State-Verhalten ueber die vorhandenen JavaScript-Libs anbinden.
  8. Modulaufruf in Content, Page-Template oder Admin-Template eintragen.
  9. Doxygen und fachliche Screens im Browser pruefen.
dbXapp wird stabil, wenn Module klein bleiben und die gemeinsamen Pipelines genutzt werden. Die Dokumentation beschreibt deshalb bewusst Ablaeufe, Konventionen und Beispiele, nicht nur einzelne Methoden.