Oui pour composer j'ai failli y passer quand j'ai préparé le code pour la publication mais j'ai abandonné par pur excès de flemme

[edit] J'ai regardé rapidement les bibliothèques que tu proposais Arvi, voilà ce que j'ai noté pour chaque :
Doctrine : le coût de migration a l'air énorme, il me faudrait un bon argument pour l'envisager. A première vue je ne suis pas fan d'un certain nombre de choix de design, par exemple la syntaxe hybride entre PHP et "pseudo-SQL via des strings" pour leur SQL query builder (des trucs genre
->select('DATE(last_login) as date'), j'aurais préféré quelque chose d'un peu plus typé en passant explicitement tous les paramètres avec une syntaxe PHP plutôt que de devoir utiliser un parseur custom pour convertir le pseudo-SQL) ou bien leur ORM qui parse des commentaires pour essayer de trouver les méta-données des modèles. Comme la mise en place n'a pas l'air triviale et que la documentation
est incomplète à des endroits qui me semblent importants pour démarrer, je n'ai pas vraiment la motivation pour creuser plus loin.
Symfony router : un peu pareil que pour Doctrine, ça utilise une solution qui parse les commentaires de classes "controller" pour en déduire les routes éligibles. Comme je n'ai rien vu au sujet de caches dans la documentation, j'ai un peu peur que le machin s'amuse à parser le contenu de N classes à chaque requête pour trouver toutes les routes, mais j'imagine qu'il doit y avoir une astuce parce que ça serait un peu délirant. Si tu en connais plus sur le fonctionnement, je suis preneur de quelques éclaircissements

Guzzle : l'argument de performance n'aurait pas beaucoup de sens ici puisqu'il s'agit de déclencher des requêtes HTTP, en revanche Guzzle fait 3466 lignes de code (d'après
cloc). Comparées aux 150 lignes du code que j'utilise actuellement, sachant que dans les deux cas c'est cURL qui fait réellement le boulot derrière, ça ne me semble pas très intéressant. Par ailleurs Guzzle ne semble pas proposer d'option pour définir une limite maximum à la taille de la réponse, ce qui veut dire qu'on peut faire exploser PHP à distance avec une allocation mémoire trop grosse si on lui demande de télécharger un gros fichier. Cet argument seul élimine cette bibliothèque des choix possibles pour moi.
Monolog : la bibliothèque fait 6517 lignes de code, je suppose que c'est en grande partie liée aux différentes cibles qu'elle permet d'utiliser. C'est clairement une fonctionnalité que je n'ai pas, donc il faudrait que je fasse un bench pour vérifier que son intégration ne coûte pas trop cher.