Je me rappelais de cette solution issue d'un CI , mais effectivement c'est bien mieux expliqué ici.