A multi-year effort is finally coming to production.
I’ve created an auditing engine for Doctrine. This engine reads configured entities (and join entities for many to many) and creates an audit database for them. Triggers are generated for the target database which populate the audit database.
An epoch tool will prime the audit database for existing databases.
Documentation is just getting started but you can see the library in action by following the quickstart: http://zf-doctrine-audit.readthedocs.io/en/latest/quickstart.html