PHP 8.5 und Fibers: Asynchrone Anfragen ohne Framework optimieren
Erfahren Sie, wie Fibers in PHP 8.5 asynchrone und parallele I/O-Operationen sauber und ohne schwergewichtiges Framework verwalten.
Mit der kontinuierlichen Weiterentwicklung von PHP sind Asynchronität und Nebenläufigkeit zu zentralen Themen für leistungsstarke Webanwendungen geworden. Durch Fibers kann PHP Codeblöcke anhalten und fortsetzen. Nicht blockierende I/O-Vorgänge lassen sich dadurch ohne die Komplexität verschachtelter Callbacks verwalten.
Was Fibers in PHP sind und warum man sie verwendet
Fibers sind unterbrechbare Codeblöcke mit eigenem Stack. Asynchrone Abläufe können in einer vollständig sequenziellen Syntax geschrieben werden. Das bietet mehrere Vorteile:
- Kein schwergewichtiges Framework: Für nebenläufige Ausführung sind keine komplexen Bibliotheken oder Laufzeitumgebungen von Drittanbietern erforderlich.
- Sauberer Code: Verschachtelte Callbacks und komplexe Promises entfallen; die Lesbarkeit synchronen Codes bleibt erhalten.
- Performance und nicht blockierendes I/O: Geeignet für parallele HTTP-Aufrufe, Datenbankabfragen oder Dateisystemoperationen.
Praxisbeispiel: HTTP-Aufrufe und paralleles I/O
Wenn zwei externe APIs oder zwei unabhängige I/O-Operationen abgefragt werden müssen, können sie statt einer blockierenden sequenziellen Ausführung über Fibers koordiniert werden:
<?php
$fiber1 = new Fiber(function(): void {
echo "Inizio recupero dati da API A...\n";
Fiber::suspend('Dati API A in elaborazione');
echo "Completato recupero dati da API A!\n";
});
$fiber2 = new Fiber(function(): void {
echo "Inizio recupero dati da API B...\n";
Fiber::suspend('Dati API B in elaborazione');
echo "Completato recupero dati da API B!\n";
});
// Avvio delle Fiber
$res1 = $fiber1->start();
$res2 = $fiber2->start();
// Ripresa dell'esecuzione
$fiber1->resume();
$fiber2->resume();
?>Wann Fibers dem traditionellen Ansatz vorzuziehen sind
Fibers sind ideal, wenn eine Anwendung mehrere blockierende I/O-Operationen verwalten muss. Sie ersetzen kein Multithreading für CPU-intensive Aufgaben, bewältigen aber Wartezeiten von Netzwerk und Datenträger sehr effizient.
Fazit
Die native Integration von Fibers ist ein großer Fortschritt für die moderne PHP-Entwicklung. Damit lassen sich schnelle Microservices, Crawler und API-Clients vollständig im reinen PHP-Ökosystem erstellen.
Offizielle Quellen
Teilen
Was ist Ihre Reaktion?
Gefällt mir
0
Gefällt mir nicht
0
Liebe
0
Lustig
0
Wütend
0
Traurig
0
Wow
0