Scope::inherit
(PHP 8.6+, True Async 1.0)
public static function inherit(?Scope $parentScope = null): Scope
Crée un nouveau Scope qui hérite du scope parent spécifié. Si le paramètre $parentScope n’est pas fourni (ou est null), le nouveau scope hérite du scope actif courant.
Le scope enfant hérite des gestionnaires d’exceptions et des politiques d’annulation du parent.
Paramètres
parentScope — le scope parent dont le nouveau scope héritera. Si null, le scope actif courant est utilisé.
Valeur de retour
Scope — un nouveau scope enfant.
Exemples
Exemple #1 Création d’un scope enfant à partir du scope courant
<?php
use Async\Scope;
use function Async\spawn;
$parentScope = new Scope();
$parentScope->spawn(function() {
// À l'intérieur de la coroutine, le scope courant est $parentScope
$childScope = Scope::inherit();
$childScope->spawn(function() {
echo "Running in child scope\n";
});
$childScope->awaitCompletion();
});
Exemple #2 Spécification explicite du scope parent
<?php
use Async\Scope;
$rootScope = new Scope();
$childScope = Scope::inherit($rootScope);
$childScope->spawn(function() {
echo "Coroutine in child scope\n";
});
// L'annulation du parent annule également le scope enfant
$rootScope->cancel();
Voir aussi
- Scope::__construct — Créer un Scope racine
- Scope::getChildScopes — Obtenir les scopes enfants
- Scope::dispose — Annuler et fermer le scope