Fibers

PHP 🔴 Senior

Definition

Primitive de concurrence introduite en PHP 8.1 permettant de suspendre et reprendre l'execution d'un bloc de code. Base des frameworks asynchrones comme Revolt.

Analogie

Comme mettre un livre en pause avec un marque-page pour en lire un autre, puis reprendre exactement ou on s'etait arrete.

Exemple de code

$fiber = new Fiber(function (): void {
  $value = Fiber::suspend('paused');
  echo "Repris avec: $value";
});
$result = $fiber->start(); // 'paused'
$fiber->resume('hello');

Cas d'usage

Pour construire des bibliotheques asynchrones ou des event loops sans callbacks imbriques.

Anti-pattern

Utiliser les Fibers directement en application au lieu de passer par un framework async.

Termes lies

#advanced#php8