You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
stateDiagram-v2
[*] --> Initialize: YForm Constructor
Initialize --> PreBuildValuesAndActions: Load Input Values
PreBuildValuesAndActions --> BuildValueObjects: Create Value Objects
BuildValueObjects --> BuildValidateObjects: Create Validate Objects
BuildValidateObjects --> BuildActionObjects: Create Action Objects
BuildActionObjects --> ValuePreValidation: Submit
ValuePreValidation --> ValueInitAndEnter: No Validation Errors
ValuePreValidation --> HasErrors: Validation Errors
ValueInitAndEnter --> ValidateExecution: Execute Value Objects
ValidateExecution --> ValuePostValidation: Run Validations
ValuePostValidation --> ActionExecution: No Validation Errors
ValuePostValidation --> HasErrors: Validation Errors
ActionExecution --> PreAction: Pre Actions
PreAction --> PostAction: Execute Actions
PostAction --> ActionsDone: Post Actions
ActionsDone --> [*]: Form Done
HasErrors --> [*]: Show Form Again
note right of Initialize
Load parameters, form elements
Initialize objparams
end note
note right of PreBuildValuesAndActions
Setup objparams,
session data,
CSRFToken
end note
note right of ValuePreValidation
CSRF check
Custom pre-validation
end note
note right of ValuePostValidation
Validate rules execution
Fill value pools
end note
note right of ActionExecution
Email sending
Database operations
Custom actions
end note
Loading
Detaillierter Lifecycle-Ablauf
1. Initialisierung
YForm Constructor
Der YForm Constructor wird aufgerufen
Die Basis-Parameter werden gesetzt
Ein einzigartiger Form-Name wird generiert falls nicht angegeben
Debug-Modus wird geprüft und ggf. aktiviert
Parameter-Initialisierung
objparams werden mit Standardwerten initialisiert
Formular-spezifische Parameter werden gesetzt
Template-Pfade werden definiert
Error- und Warning-Handler werden initialisiert
2. Build-Phase
Pre-Build
Request-Daten werden geladen
Session-Handling wird eingerichtet
CSRF-Token wird generiert oder validiert
Objekt-Parameter werden für den Build-Prozess vorbereitet
Value Objects erstellen
Value-Definitionen werden durchlaufen
Für jeden Value-Type wird ein entsprechendes Objekt instanziiert
Default-Werte werden gesetzt
Value-spezifische Parameter werden initialisiert
Validate Objects erstellen
Validierungs-Regeln werden aus den Definitionen geladen
Validate-Objekte werden erstellt und konfiguriert
Abhängigkeiten zwischen Values und Validates werden hergestellt
Action Objects erstellen
Action-Definitionen werden verarbeitet
Action-Objekte werden instanziiert
Action-Parameter werden gesetzt
3. Validierungs-Phase
Pre-Validation
CSRF-Check wird durchgeführt
Basis-Validierungen werden ausgeführt
Formular-weite Validierungen werden geprüft
Custom Pre-Validate Funktionen werden ausgeführt
Value Processing
Jedes Value-Objekt wird initialisiert (init())
Value-Objekte werden ausgeführt (enterObject())
Werte werden in die entsprechenden Pools eingetragen
Datei-Uploads werden verarbeitet
Validation Execution
Alle Validierungs-Regeln werden geprüft
Fehler werden gesammelt
Warning-Messages werden generiert
Validierungs-Ergebnisse werden in den Objekt-Parametern gespeichert
Post-Validation
Value-Pools werden finalisiert
Letzte Validierungen werden durchgeführt
SQL/Email-Pools werden vorbereitet
Validierungs-Status wird final gesetzt
4. Action-Phase
Pre-Actions
Vorbereitende Aktionen werden ausgeführt
Datenbank-Verbindungen werden vorbereitet
Temporäre Daten werden bereinigt
Action Execution
SQL-Aktionen werden ausgeführt (Insert/Update/Delete)
E-Mails werden gesendet
Dateien werden gespeichert
Redirects werden vorbereitet
Post-Actions
Aufräumarbeiten werden durchgeführt
Temporäre Daten werden gelöscht
Sessions werden aktualisiert
Cache wird ggf. geleert
5. Abschluss
Erfolgreicher Abschluss
Erfolgsmeldungen werden generiert
Weiterleitungen werden ausgeführt
Formulardaten werden zurückgesetzt
Fehlerfall
Fehlermeldungen werden vorbereitet
Formular wird mit Fehlern neu gerendert
Eingegebene Daten werden beibehalten
Besonderheiten
Value Pools
YForm verwendet verschiedene Value-Pools für unterschiedliche Zwecke:
value_pool['email']: Werte für E-Mail-Templates
value_pool['sql']: Werte für Datenbank-Operationen
Activity
skerbis commentedon Jan 30, 2025
in etwa so?
YForm Lifecycle
Ablauf-Diagramm
stateDiagram-v2 [*] --> Initialize: YForm Constructor Initialize --> PreBuildValuesAndActions: Load Input Values PreBuildValuesAndActions --> BuildValueObjects: Create Value Objects BuildValueObjects --> BuildValidateObjects: Create Validate Objects BuildValidateObjects --> BuildActionObjects: Create Action Objects BuildActionObjects --> ValuePreValidation: Submit ValuePreValidation --> ValueInitAndEnter: No Validation Errors ValuePreValidation --> HasErrors: Validation Errors ValueInitAndEnter --> ValidateExecution: Execute Value Objects ValidateExecution --> ValuePostValidation: Run Validations ValuePostValidation --> ActionExecution: No Validation Errors ValuePostValidation --> HasErrors: Validation Errors ActionExecution --> PreAction: Pre Actions PreAction --> PostAction: Execute Actions PostAction --> ActionsDone: Post Actions ActionsDone --> [*]: Form Done HasErrors --> [*]: Show Form Again note right of Initialize Load parameters, form elements Initialize objparams end note note right of PreBuildValuesAndActions Setup objparams, session data, CSRFToken end note note right of ValuePreValidation CSRF check Custom pre-validation end note note right of ValuePostValidation Validate rules execution Fill value pools end note note right of ActionExecution Email sending Database operations Custom actions end noteDetaillierter Lifecycle-Ablauf
1. Initialisierung
YForm Constructor
Parameter-Initialisierung
objparamswerden mit Standardwerten initialisiert2. Build-Phase
Pre-Build
Value Objects erstellen
Validate Objects erstellen
Action Objects erstellen
3. Validierungs-Phase
Pre-Validation
Value Processing
init())enterObject())Validation Execution
Post-Validation
4. Action-Phase
Pre-Actions
Action Execution
Post-Actions
5. Abschluss
Erfolgreicher Abschluss
Fehlerfall
Besonderheiten
Value Pools
YForm verwendet verschiedene Value-Pools für unterschiedliche Zwecke:
value_pool['email']: Werte für E-Mail-Templatesvalue_pool['sql']: Werte für Datenbank-Operationenvalue_pool['files']: Hochgeladene DateienCSRF-Protection
Debugging
Extension Points
Wichtige Extension Points im Lifecycle:
YFORM_INITYFORM_VALIDATEYFORM_SAVEDYFORM_DATA_ADDEDYFORM_DATA_UPDATED