Inclusion, Installation und Aufruf
Zweistufige Inclusion, DD-Sync, Fixtures, Installation und direkte Modulaufrufe.
Kapitel 6 des verbindlichen Modulhandbuchs für das Referenzmodul myInvoices.
12. Was die zweistufige Inclusion technisch bewirkt
Für jede sichtbare Rechnung erzeugt invoice_report_next_record() genau einen Marker:
Der Interpreter:
- prüft den Modulzugriff;
- setzt dbx_run1 und invoice_id als geschützte Modulvariablen;
- ruft erneut den kleinen Router auf;
- lässt positions() Kopf und Positionen über dbxDB und DD prüfen;
- ersetzt den Marker durch den fertigen Positionsreport.
Das Muster eignet sich für eine begrenzte äußere Seitengröße. Bei 20 Rechnungen entstehen 20 gezielte Positionsabfragen mit verschiedenen invoice_id-Werten; das sind keine identischen Resultsets, die ein einfacher Ergebniscache zusammenlegen könnte. dbxDB kann weiterhin DD-Metadaten, Verbindungen und dafür vorgesehene DD-Caches zentral nutzen.
Bei sehr großen Seiten SOLL die Unterliste erst beim Öffnen eingebettet oder in einem fachlichen Batch über dbxDB vorgeladen werden. Direkte PDO-Abfragen oder ein zweiter Browser-API-Weg sind keine Optimierung.
13. DD-Sync, Fixtures und Installation
Beide DDs werden über den vorhandenen Admin-DD-Sync oder einen explizit geschützten Installationspfad synchronisiert:
Schemaänderungen laufen nicht bei jedem normalen Request. Der ausführbare Service zeigt unter dbx_run1=install zunächst nur ein dbxForm. DD-Sync und Fixtures starten erst nach dessen gültigem POST. Deshalb braucht die Installationsroute keinen zusätzlichen dbx_token: dbxForm schützt bereits den Submit, und die Route verlangt zusätzlich Adminrecht.
include/myInvoicesFixtures.class.php berechnet die Demo-Snapshots aus den zugehörigen Positionen und schreibt sämtliche Fachdaten über dbxDB. Sie übergibt keine Auditfelder. Alle Demo-Rechnungen besitzen eine eindeutige DBX-DEMO-*-Nummer; ein wiederholter Lauf überspringt vorhandene Fixtures und überschreibt keine Benutzerdaten.
Für Automation steht derselbe Installer ohne zweiten Datenpfad per CLI bereit:
14. Direkter Aufruf und Inclusion
Direkt:
Eingebettet:
Der Positionsaufruf wird normalerweise vom Rechnungs-Record-Callback erzeugt, kann für eine reine Detailansicht aber auch bewusst eingesetzt werden:
Templates verwenden {i} für eindeutige Instanzen. Modulparameter werden mit get_modul_var() und passenden Regeln gelesen.