"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > FetchPHP : une mise à jour pour apporter Fetch et True Async de Javascript à PHP (maintenant avec des super pouvoirs !)

FetchPHP : une mise à jour pour apporter Fetch et True Async de Javascript à PHP (maintenant avec des super pouvoirs !)

Publié le 2024-11-04
Parcourir:386

FetchPHP : An Update To Bring Javascript

Salut, passionnés de PHP ! ? Vous souvenez-vous de cette fois où vous codiez tard dans la nuit, aux prises avec des requêtes HTTP en PHP, et pensiez : « Si seulement cela était aussi simple que la récupération de JavaScript » ? Eh bien, prenez votre café et préparez-vous à recevoir des nouvelles passionnantes, car FetchPHP 2.0 est là, et il est sur le point de rendre vos requêtes HTTP PHP plus fluides qu'une machine bien huilée !

L'histoire d'origine : de la récupération à la récupération surpuissante

Imaginez ceci : nous sommes en 2023 et je suis assis dans mon café préféré, en sirotant un très grand café au lait... Non, je plaisante. En fait, j'étais à la maison, plongé jusqu'aux genoux dans une séance d'Elden Ring, quand soudain, l'inspiration m'est venue. « Et si, ai-je pensé, nous pouvions apporter la simplicité de la récupération de JavaScript au monde PHP ? » Et c'est ainsi que FetchPHP est né. (Ne vous inquiétez pas, j'ai terminé ce combat de boss en premier.)

Mais voici le problème de l'inspiration : elle ne s'arrête pas à la version 1.0. En regardant les développeurs adopter FetchPHP, j'ai réalisé que nous pouvions repousser les limites encore plus loin. Alors, je me suis enfermé dans ma grotte de codage (d'accord, c'était juste mon bureau à domicile, mais au bout d'un moment, j'avais l'impression d'être une grotte), alimenté par une quantité malsaine de boissons énergisantes, et j'ai émergé avec FetchPHP 2.0.

Quoi de neuf dans FetchPHP 2.0 ?

Attachez votre ceinture, car cette mise à jour contient plus de fonctionnalités qu'un couteau suisse ! Voici ce qui se passe dans la version 2.0 :

  1. Véritables superpouvoirs asynchrones : Vous vous souvenez de l'époque où l'async en PHP avait l'impression d'essayer de courir un marathon en tongs ? Ces jours sont révolus ! FetchPHP 2.0 exploite PHP Fibers (grâce à notre package frère, Matrix) pour offrir une véritable concurrence non bloquante. C'est comme donner à votre code une paire de bottes-fusée ! Matrix, un package que j'ai construit moi-même, simplifie la gestion des tâches asynchrones en utilisant PHP Fibers. Avec Matrix, FetchPHP peut exécuter des tâches asynchrones comme jamais auparavant.

  2. Développeurs JavaScript, sentez-vous comme chez vous : nous avons introduit une syntaxe de type async()/await qui donnera aux développeurs JavaScript l'impression de ne jamais quitter la maison. C'est si familier que vous pourriez oublier que vous écrivez PHP !

  3. API fluide pour la victoire : la création de requêtes est désormais plus fluide que l'art du latte de votre barista préféré. Enchaînez les méthodes avec notre nouvelle API fluide, inspirée du client HTTP de Laravel. C'est tellement élégant qu'il s'écrit pratiquement tout seul !

  4. Gestion des erreurs sur les stéroïdes : Avec notre nouveau gestionnaire d'erreurs personnalisable, la gestion des erreurs n'est plus un cauchemar. Suspendez, reprenez, réessayez ou annulez des tâches à la volée. C'est comme avoir une machine à voyager dans le temps pour vos requêtes HTTP !

  5. Guzzle Who? : Alors que nous tirons toujours notre chapeau à Guzzle (il alimente nos requêtes synchrones sous le capot), FetchPHP 2.0 amène les choses à un tout autre niveau. C'est comme si nous avions emmené Guzzle à la salle de sport, lui avions donné des épinards et lui avions appris de nouveaux trucs !

Mais attends, il y a plus

Vous vous souvenez que dans la version 1.0, nous étions tous enthousiastes à l'idée de faire des requêtes simples ? Eh bien, gardez vos claviers, car FetchPHP 2.0 est prêt à gérer des scénarios complexes comme un pro. Regardons quelques exemples qui vous donneront envie de réécrire toute votre logique HTTP (ne vous inquiétez pas, nous ne jugerons pas si vous le faites) :

// Async request with all the bells and whistles
async(fn () => fetch()
    ->baseUri('https://api.coolstartup.com')
    ->withHeaders(['X-API-Key' => 'supersecret'])
    ->withBody(json_encode(['feature' => 'awesome']))
    ->withProxy('tcp://localhost:8080')
    ->timeout(5)
    ->retry(3, 1000)
    ->post('/unicorns'))
    ->then(fn ($response) => processUnicornData($response->json()))
    ->catch(fn ($e) => logUnicornError($e));

Regardez cette beauté ! Il gère les proxys, les tentatives, les délais d'attente et bien plus encore, tout en restant asynchrone et en étant magnifique.

FetchPHP vs Guzzle : la confrontation que vous attendiez

Maintenant, je sais à quoi vous pensez. "Mais j'utilise Guzzle depuis des années ! Pourquoi devrais-je changer ?" Eh bien, attachez votre ceinture, car nous sommes sur le point de découvrir pourquoi FetchPHP 2.0 est le nouveau champion poids lourd des clients PHP HTTP.

1. Véritables pouvoirs asynchrones

  • Guzzle : utilise des promesses pour les opérations asynchrones. C'est comme envoyer un pigeon voyageur et espérer qu'il revienne.
  • FetchPHP : exploite les fibres PHP pour une véritable concurrence non bloquante. C'est comme avoir une équipe de jets supersoniques à votre disposition, grâce à la puissance de mon package Matrix !

2. Une syntaxe qui ressemble à celle de la maison

  • Guzzle : syntaxe PHP traditionnelle. C'est familier, mais cela peut devenir verbeux.
  • FetchPHP : syntaxe asynchrone/attente de type JavaScript. C'est tellement intuitif que vous penserez que vous écrivez du code frontend (mais avec toute la puissance de PHP).

3. API fluide

  • Guzzle : offre une API décente, mais peut sembler un peu rigide pour les opérations complexes.
  • FetchPHP : méthodes chaînables qui permettent de lire même les requêtes les plus complexes comme un beau poème.

4. Gestion des erreurs et gestion des tâches

  • Guzzle : gestion des erreurs de base basée sur la promesse.
  • FetchPHP : gestion avancée des erreurs avec ErrorHandler personnalisable. Suspendez, reprenez, réessayez ou annulez des tâches à la volée. C'est comme avoir une baguette magique pour vos requêtes HTTP.

5. Courbe d'apprentissage

  • Guzzle : courbe d'apprentissage plus raide, en particulier pour les opérations asynchrones complexes.
  • FetchPHP : Si vous connaissez le fetch de JavaScript, vous êtes déjà à mi-chemin. Si vous ne le faites pas, vous le récupérerez plus rapidement que vous ne pouvez dire « asynchrone ».

6. Performances

  • Guzzle : bonnes performances pour les requêtes synchrones, correctes pour les requêtes asynchrones.
  • FetchPHP : optimisé pour les requêtes synchrones et asynchrones. C'est comme passer d'un vélo à une fusée.

Voici une comparaison rapide pour enfoncer le clou :

// Guzzle
$promise = $client->requestAsync('GET', 'http://httpbin.org/get');
$promise->then(
    function ($response) {
        echo 'I completed! ' . $response->getBody();
    },
    function ($exception) {
        echo 'I failed! ' . $exception->getMessage();
    }
);

// FetchPHP

// using async/await syntax
async(fn () => fetch('http://httpbin.org/get'))
    ->then(fn ($response) => echo 'I completed! ' . $response->body())
    ->catch(fn ($e) => echo 'I failed! ' . $e->getMessage());

// or directly using the ClientHandler class
use Fetch\Http\ClientHandler;

(new ClientHandler())
    ->async()
    ->get('http://httpbin.org/get');

Vous voyez la différence ? FetchPHP apporte l'élégance du JavaScript moderne au monde PHP, tout en conservant la puissance et la flexibilité dont vous avez besoin pour les applications complexes.

Pourquoi FetchPHP 2.0 vous fera tout remettre en question

Imaginez que vous êtes un chef d'orchestre et que vos requêtes HTTP sont votre orchestre. Avec Guzzle, vous faites un excellent travail, mais vous êtes limité à jouer d'un instrument à la fois. Récupérer PHP 2.0 ? Cela fait de vous un maestro, dirigeant une symphonie complète de requêtes asynchrones, chacune jouant en parfaite harmonie.

Voici pourquoi FetchPHP 2.0 est le client HTTP dont vous n'auriez jamais pensé avoir besoin :

  1. True Async : nous ne faisons pas que faire semblant avec des promesses. C'est la vraie affaire, propulsée par PHP Fibers et Matrix.
  2. Syntaxe familière : les développeurs JavaScript se sentiront comme chez eux, et les développeurs PHP se demanderont pourquoi cela n'a pas toujours été aussi simple.
  3. Gestion flexible des erreurs : réessayez, mettez en pause, reprenez ou annulez les demandes à la volée. C'est comme avoir une télécommande pour vos requêtes HTTP.
  4. Puissant, mais simple : les opérations complexes sont désormais aussi simples que de commander une pizza (peut-être même plus facile, selon votre pizzeria locale).

L'avenir est radieux (et asynchrone)

FetchPHP 2.0 n'est pas seulement une mise à jour ; c'est une révolution dans la façon dont nous traitons les requêtes HTTP en PHP. Que vous construisiez une petite API ou un système à grande échelle devant gérer des milliers de requêtes simultanées, FetchPHP 2.0 est là pour vous.

Alors, êtes-vous prêt à rejoindre la révolution asynchrone ? Rendez-vous sur notre référentiel GitHub, donnez-nous une étoile (nous les adorons !) et commencez à rendre vos applications PHP plus rapides, plus efficaces et, oserais-je dire, plus amusantes à travailler !

N'oubliez pas que dans le monde de FetchPHP 2.0, la seule limite est votre imagination (et peut-être les ressources de votre serveur, mais c'est un problème pour un autre jour).

Bon codage, et que vos requêtes soient toujours asynchrones ! ?✨


P.S. Si vous rencontrez des problèmes ou avez des idées pour rendre FetchPHP encore plus génial, n'hésitez pas à ouvrir un ticket ou à soumettre une pull request. Rendons le monde PHP meilleur, une requête à la fois !

Déclaration de sortie Cet article est reproduit sur : https://dev.to/thavarshan/fetchphp-20-an-update-to-bring-javascripts-fetch-true-async-to-php-now-with-superpowers-3g1m?1. infraction, veuillez contacter [email protected] pour supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3