Flotilla provides the forms and has no knowledge about any logging table.
All forms should log changes to the database.
Adding information about a logging table to each form is error-prone: It's easy to miss one or mis-spell.
Flotilla does not know anything about Zefiro, however Zefiro comes with Flotilla
Suggested solution
The logging tables become official part of Zefiro.
Hook:
2.1 Flotilla provides a hook registration function, that allows other frameworks and applications to hook-in - and get notified when any write operation on the database is performed.
2.2 Implementation Details:
2.2.1 Flotilla gets a hook-registration function allowing Zefiro to hook-in and a hook-run function that will call the hooked-in routines on certain events (e.g. database writes).
2.2.2 Hooking can be designed in a generic fashion. A static class might be sufficient.
2.2.3 Zefiro has to provide a (callback)function called when a hook is run and logs the updates in the log table and registers the hook with Flotilla.
The issue
Suggested solution