We can maybe extract all common things into an `AbstractDoctrineListener` and keep the real implementation in the bundle.