Login / Sign up
Discover Bonzai
Terms of Use
Legal notice
Privacy
Region
Language
matyo91
matyo91
11
Subscribers
Facebook
X
Whatsapp
Telegram
👉 You must follow matyo91 to access chat.
Feed Shop About

đŸŽ™ïžHttpChunk avec Flow

Facebook
Twitter
Whatsapp
Telegram
3 weeks ago

Le traitement des réponses HTTP en chunks est un défi récurrent :

  • Plusieurs requĂȘtes doivent ĂȘtre lancĂ©es en parallĂšle.

  • Certaines Ă©chouent (404, timeouts) et nĂ©cessitent des retries.

  • Chaque utilisateur renvoie des donnĂ©es additionnelles (todos, posts), impliquant des requĂȘtes « fan-out ».

  • Le tout s’accumule rapidement en callback hell, gestion d’état manuelle, et tests difficiles.

Problématique :

HTTP chunk processing is complex when it should be fluid.

Le problĂšme

En PHP, la gestion de flux HTTP asynchrones a souvent été abordée de maniÚre impérative :

  • Callbacks imbriquĂ©s.

  • Variables d’état partagĂ©es.

  • DifficultĂ©s de test et de maintenance.

Ces approches rendent le code peu lisible, fragile et coûteux à faire évoluer.

La solution avec Flow

Le Flow Framework apporte une réponse fonctionnelle et élégante à cette complexité.

  • Jobs : des fonctions pures qui transforment des donnĂ©es.

  • Ips : des objets immuables qui transportent l’information entre les jobs.

  • Drivers : Amp, React, Swoole ou Fiber — abstraits derriĂšre Flow.

  • Y-Flow : l’intĂ©gration du Y-Combinator pour gĂ©rer la rĂ©cursion sans boucles explicites.

Résultat : un pipeline clair, composable et testable, qui orchestre naturellement les flux asynchrones.

La démo : httpchunkflow.php

L’exemple concret :

php examples/httpchunkflow.php

Déroulement :

  1. Trois requĂȘtes initiales (/users, /users/404, /todos).

  2. Gestion des erreurs : un 404 est automatiquement retry vers /users/1.

  3. Y-Combinator : chaque utilisateur dĂ©clenche automatiquement des requĂȘtes supplĂ©mentaires (/todos, /posts).

  4. ExĂ©cution concurrente : les requĂȘtes s’exĂ©cutent en parallĂšle.

  5. Merge final : consolidation des données en un résultat structuré.

Extrait de logs :

. #1 GET /users ... started . #2 GET /users/404 ... started . #3 GET /todos ... started . #2 404 -> retry /users/1 ..* #1 chunks: parsing via Y ...* #101 QUEUED /users/1/todos ...* #1101 QUEUED /users/1/posts .* #101 200 in 18ms .* #1101 200 in 16ms ....* merging data .....* finalizing results User #1: Leanne Graham ([email protected]) - Todos: 20 items - Posts: 10 items DONE driver=Flow\Driver\AmpDriver duration=7.99s users=200 retry=1 errors=0

Les bénéfices

  • ✅ LisibilitĂ© : plus de callback hell.

  • ✅ PuretĂ© : chaque job est une fonction testable isolĂ©ment.

  • ✅ ImmutabilitĂ© : flux de donnĂ©es clairs et prĂ©visibles.

  • ✅ RĂ©cursion Ă©lĂ©gante : Y-Combinator au lieu de boucles impĂ©ratives.

  • ✅ Async par design : Flow orchestre la concurrence naturellement.

Conclusion

Avec Flow et Y-Combinator, le traitement HTTP chunkĂ© passe d’un cauchemar impĂ©ratif Ă  une solution fluide et fonctionnelle. On obtient du code :

  • plus lisible,

  • plus testable,

  • plus maintenable.

Ressources

  • 🔗 Flow Framework – GitHub

  • 🔗 API de test – JSONPlaceholder

matyo91
matyo91
Free

Consulting Tech & Automation – Call DĂ©couverte Gratuit

Open
Follow matyo91 to comment
matyo91

matyo91

Je t'aide Ă  automatiser tes process
11
Visit this Bonzai
Follow matyo91 to get the latest updates.

🎼 Comprendre l’ECS : la brique invisible derriùre les jeux modernes

5 days ago
9

🚀 Uniflow 1.1.18

1 week ago
20

🎹 Programmation rĂ©cursive de pipes

2 weeks ago
24

🚀 Veille tech semaine 39

3 weeks ago
24

🔹 API Platform Conference 2025 : retour de l’écosystĂšme Symfony et PHP

3 weeks ago
47

✹ Rencontre SQLI

1 month ago
33

🎹 Pipe Programming : linĂ©ariser la complexitĂ© des graphes

1 month ago
40

🚀 Symfony AI Hackathon – Mon retour d’expĂ©rience en ligne

1 month ago
38

🚀 Veille tech semaine 37

1 month ago
43

đŸŽČ Pierre-Papier-Ciseaux : un modĂšle minimal d’équilibre et de stratĂ©gie

1 month ago
40

⛓ Strong vs Weak References : maĂźtriser la mĂ©moire et Ă©viter les fuites

1 month ago
33

🔄 Inverser pour mieux rĂ©gner

1 month ago
43

🔐 Git : assurer l’intĂ©gritĂ© et l’authenticitĂ© de l’historique

1 month ago
42

🚀 Veille Tech – Semaine 36

1 month ago
47

🔊 2025-09-01 DJ Matyo Live - UK Hardcore / Happy Hardcore

1 month ago
47

✹ Uniflow v1.1.17 – Migration vers Symfony UX

1 month ago
37

đŸ€– Panorama 2025 des plateformes freelances : 128 solutions pour trouver vos missions

1 month ago
125

đŸ–Œïž Supprime automatiquement l’arriĂšre-plan de tes images avec Claude et RMBG

1 month ago
56

🚀 Veille Tech – Semaine 34

1 month ago
57

đŸ‘©â€đŸ’» Hier, j’ai codĂ© avec ma copine Ani 😍 (oui, elle est IA đŸ€–âœš).

1 month ago
51
© 2025 Bonzai Privacy Legal notice Terms of Use