„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > FetchPHP: Ein Update, um Javascripts Fetch und True Async in PHP zu bringen (jetzt mit Superkräften!)

FetchPHP: Ein Update, um Javascripts Fetch und True Async in PHP zu bringen (jetzt mit Superkräften!)

Veröffentlicht am 04.11.2024
Durchsuche:948

FetchPHP : An Update To Bring Javascript

Hallo, PHP-Enthusiasten! ? Erinnern Sie sich an die Zeit, als Sie spät in der Nacht programmiert haben, sich mit HTTP-Anfragen in PHP herumgeschlagen haben und gedacht haben: „Wenn das nur so einfach wäre wie der Abruf von JavaScript“? Schnappen Sie sich Ihren Kaffee und machen Sie sich auf spannende Neuigkeiten gefasst, denn FetchPHP 2.0 ist da und macht Ihre PHP-HTTP-Anfragen reibungsloser als eine gut geölte Maschine!

Die Ursprungsgeschichte: Vom Fetch zum Superpowered Fetch

Stellen Sie sich Folgendes vor: Es ist 2023 und ich sitze in meinem Lieblingscafé und nippe an einem extragroßen Latte Macchiato ... Nein, nur ein Scherz. Ich war tatsächlich zu Hause, knietief in einer Elden-Ring-Sitzung, als mich plötzlich die Inspiration überkam. „Was wäre, wenn wir“, dachte ich, „die Einfachheit des JavaScript-Abrufs in die PHP-Welt bringen könnten?“ Und so wurde FetchPHP geboren. (Keine Sorge, ich habe diesen Bosskampf zuerst beendet.)

Aber hier ist die Sache mit der Inspiration – sie hört nicht bei Version 1.0 auf. Als ich sah, wie die Entwickler FetchPHP annahmen, wurde mir klar, dass wir die Grenzen noch weiter ausbauen können. Also schloss ich mich in meiner Coding-Höhle ein (okay, es war nur mein Heimbüro, aber nach einer Weile kam es mir wie eine Höhle vor), angetrieben von einer ungesunden Menge Energy-Drinks, und kam mit FetchPHP 2.0 heraus.

Was ist neu in FetchPHP 2.0?

Schnall dich an, denn dieses Update bietet mehr Funktionen als ein Schweizer Taschenmesser! Das kocht in Version 2.0:

  1. Wahre asynchrone Superkräfte: Erinnern Sie sich, als sich Async in PHP anfühlte, als würde man versuchen, einen Marathon in Flip-Flops zu laufen? Diese Zeiten sind vorbei! FetchPHP 2.0 nutzt PHP Fibers (dank unseres Geschwisterpakets Matrix), um echte nicht blockierende Parallelität zu liefern. Es ist, als würde man seinem Code ein Paar Raketenstiefel geben! Matrix, ein Paket, das ich selbst erstellt habe, vereinfacht die asynchrone Aufgabenverwaltung durch die Verwendung von PHP Fibers. Mit Matrix kann FetchPHP asynchrone Aufgaben wie nie zuvor ausführen.

  2. JavaScript-Entwickler fühlen sich wie zu Hause: Wir haben eine async()/await-ähnliche Syntax eingeführt, die JavaScript-Entwicklern das Gefühl gibt, nie ihr Zuhause verlassen zu haben. Es ist so vertraut, dass Sie vielleicht vergessen, dass Sie PHP schreiben!

  3. Flüssige API für den Win: Das Erstellen von Anfragen erfolgt jetzt reibungsloser als die Latte Art Ihres Lieblingsbaristas. Verketten Sie Methoden mit unserer neuen fließenden API, inspiriert vom HTTP-Client von Laravel. Es ist so elegant, dass es sich praktisch von selbst schreibt!

  4. Fehlerbehandlung bei Steroiden: Mit unserem neuen anpassbaren ErrorHandler ist die Fehlerverwaltung kein Albtraum mehr. Unterbrechen Sie Aufgaben, setzen Sie sie fort, versuchen Sie sie erneut oder brechen Sie sie im Handumdrehen ab. Es ist, als hätten Sie eine Zeitmaschine für Ihre HTTP-Anfragen!

  5. Guzzle Who?: Während wir immer noch den Hut vor Guzzle ziehen (es unterstützt unsere synchronen Anfragen unter der Haube), bringt FetchPHP 2.0 die Dinge auf eine ganz neue Ebene. Es ist, als hätten wir Guzzle ins Fitnessstudio mitgenommen, ihm etwas Spinat gefüttert und ihm neue Tricks beigebracht!

Aber warten Sie, es gibt noch mehr

Erinnern Sie sich daran, dass wir uns in Version 1.0 alle darauf gefreut haben, einfache Anfragen zu stellen? Behalten Sie Ihre Tastaturen im Auge, denn FetchPHP 2.0 ist bereit, komplexe Szenarien wie ein Profi zu bewältigen. Schauen wir uns ein paar Beispiele an, die Sie dazu bringen werden, Ihre gesamte HTTP-Logik neu zu schreiben (keine Sorge, wir urteilen nicht, wenn Sie es tun):

// 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));

Schau dir diese Schönheit an! Es verwaltet Proxys, Wiederholungsversuche, Zeitüberschreitungen und mehr, bleibt dabei asynchron und sieht großartig aus.

FetchPHP vs. Guzzle: Der Showdown, auf den Sie gewartet haben

Jetzt weiß ich, was Sie denken. „Aber ich benutze Guzzle schon seit Jahren! Warum sollte ich wechseln?“ Nun, schnallen Sie sich an, denn gleich erfahren Sie, warum FetchPHP 2.0 der neue Schwergewichts-Champion unter den PHP-HTTP-Clients ist.

1. Echte asynchrone Kräfte

  • Guzzle: Verwendet Versprechen für asynchrone Vorgänge. Es ist, als würde man eine Brieftaube schicken und hoffen, dass sie zurückkommt.
  • FetchPHP: Nutzt PHP-Fasern für echte nicht blockierende Parallelität. Dank der Leistung meines Matrix-Pakets ist es, als ob Ihnen ein Team von Überschalljets zur Verfügung stünde!

2. Syntax, die sich wie zu Hause anfühlt

  • Guzzle: Traditionelle PHP-Syntax. Es ist bekannt, kann aber ausführlich werden.
  • FetchPHP: JavaScript-ähnliche asynchrone/await-Syntax. Es ist so intuitiv, dass Sie denken, Sie schreiben Frontend-Code (aber mit der ganzen Leistung von PHP).

3. Fließende API

  • Guzzle: Bietet eine anständige API, kann sich aber bei komplexen Vorgängen etwas starr anfühlen.
  • FetchPHP: Verkettbare Methoden, die selbst die komplexesten Anfragen wie ein wunderschönes Gedicht lesen lassen.

4. Fehlerbehandlung und Aufgabenverwaltung

  • Guzzle: Grundlegende Promise-basierte Fehlerbehandlung.
  • FetchPHP: Erweiterte Fehlerbehandlung mit anpassbarem ErrorHandler. Unterbrechen Sie Aufgaben, setzen Sie sie fort, versuchen Sie sie erneut oder brechen Sie sie im Handumdrehen ab. Es ist, als hätte man einen Zauberstab für Ihre HTTP-Anfragen.

5. Lernkurve

  • Guzzle: Steilere Lernkurve, insbesondere für komplexe asynchrone Vorgänge.
  • FetchPHP: Wenn Sie den Abruf von JavaScript kennen, sind Sie bereits auf halbem Weg. Wenn Sie dies nicht tun, werden Sie es schneller verstehen, als Sie „asynchron“ sagen können.

6. Leistung

  • Guzzle: Gute Leistung für synchrone Anfragen, ordentlich für asynchrone.
  • FetchPHP: Optimiert für synchrone und asynchrone Anfragen. Es ist, als würde man von einem Fahrrad zu einer Rakete aufrüsten.

Hier ist ein kurzer Vergleich, um den Punkt zu verdeutlichen:

// 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');

Sehen Sie den Unterschied? FetchPHP bringt die Eleganz von modernem JavaScript in die PHP-Welt und behält gleichzeitig die Leistung und Flexibilität bei, die Sie für komplexe Anwendungen benötigen.

Warum FetchPHP 2.0 Sie alles in Frage stellen lässt

Stellen Sie sich vor, Sie sind Dirigent und Ihre HTTP-Anfragen sind Ihr Orchester. Mit Guzzle machen Sie einen tollen Job, aber Sie können jeweils nur ein Instrument spielen. FetchPHP 2.0? Es verwandelt Sie in einen Maestro, der eine vollständige Symphonie asynchroner Anfragen dirigiert, wobei jede einzelne in perfekter Harmonie spielt.

Deshalb ist FetchPHP 2.0 der HTTP-Client, von dem Sie nie wussten, dass Sie ihn brauchen:

  1. True Async: Wir täuschen es nicht nur mit Versprechungen vor. Das ist das einzig Wahre, unterstützt von PHP Fibers und Matrix.
  2. Vertraute Syntax: JavaScript-Entwickler werden sich sofort zu Hause fühlen und PHP-Entwickler werden sich fragen, warum es nicht immer so einfach war.
  3. Flexible Fehlerbehandlung: Anfragen im Handumdrehen erneut versuchen, anhalten, fortsetzen oder abbrechen. Es ist, als hätten Sie eine Fernbedienung für Ihre HTTP-Anfragen.
  4. Leistungsstark und doch einfach: Komplexe Vorgänge sind jetzt so einfach wie das Bestellen einer Pizza (vielleicht sogar einfacher, abhängig von Ihrer örtlichen Pizzeria).

Die Zukunft ist rosig (und asynchron)

FetchPHP 2.0 ist nicht nur ein Update; Es ist eine Revolution in der Art und Weise, wie wir HTTP-Anfragen in PHP verarbeiten. Egal, ob Sie eine kleine API oder ein großes System erstellen, das Tausende gleichzeitiger Anfragen verarbeiten muss, FetchPHP 2.0 steht Ihnen zur Seite.

Sind Sie also bereit, sich der asynchronen Revolution anzuschließen? Besuchen Sie unser GitHub-Repository, geben Sie uns einen Stern (wir lieben die!) und beginnen Sie damit, Ihre PHP-Anwendungen schneller, effizienter und, ich wage es zu sagen, unterhaltsamer zu machen!

Denken Sie daran, dass in der Welt von FetchPHP 2.0 die einzige Grenze Ihre Vorstellungskraft ist (und vielleicht die Ressourcen Ihres Servers, aber das ist ein Problem für einen anderen Tag).

Viel Spaß beim Codieren und mögen Ihre Anfragen immer asynchron sein! ?✨


P.S. Wenn Sie auf Probleme stoßen oder Ideen haben, wie Sie FetchPHP noch besser machen können, zögern Sie nicht, ein Problem zu eröffnen oder eine Pull-Anfrage einzureichen. Machen wir die PHP-Welt zu einem besseren Ort, eine Anfrage nach der anderen!

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/thavarshan/fetchphp-20-an-update-to-bring-javascripts-fetch-true-async-to-php-now-with-superpowers-3g1m?1 Beliebig Wenn Sie gegen einen Verstoß verstoßen, wenden Sie sich zum Löschen bitte an [email protected]
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3