eio_custom

(PECL eio >= 0.0.1dev)

eio_customExécute une demande personnalisée comme l'appel à une des fonctions eio_*

Description

eio_custom ( callable $execute , int $pri , callable $callback [, mixed $data = NULL ] ) : resource

eio_custom() exécute une fonction personnalisée spécifiée par le paramètre execute et la traitant juste comme les autres fonctions eio_*.

Liste de paramètres

execute

Spécifie la fonction demandée, qui doit correspondre au prototype suivant :

      mixed execute(mixed data);
      
callback est la fonction de rappel qui doit correspondre au prototype suivant :
      void callback(mixed data, mixed result);
      
data représente les données passées à execute via l'argument data sans modification de la valeur result retourné par execute

pri

La priorité de la requête : EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, ou NULL. Si NULL est passé, le paramètre pri, en interne, est défini à EIO_PRI_DEFAULT.

callback

La fonction de rappel callback est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

void callback(mixed $data, int $result[, resource $req]);
data

représente les données personnalisées passées à la requête.

result

représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

req

est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

data

Variable arbitraire à passer à la fonction de rappel callback.

Valeurs de retour

eio_custom() retourne la ressource demandée en cas de succès, ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec eio_custom()

<?php
/* Fonction de rappel pour la fonction de rappel personnalisée */
function my_custom_callback($data$result) {
    
var_dump($data);
    
var_dump(count($result));
    
var_dump($result['data_modified']);
    
var_dump($result['result']);
}

/* La demande personnalisée */
function my_custom($data) {
    
var_dump($data);

    
$result  = array(
        
'result'        => 1001,
        
'data_modified' => "mes données personnalisées",
    );

    return 
$result;
}

$data "mes données personnalisées";
$req eio_custom("my_custom"EIO_PRI_DEFAULT"my_custom_callback"$data);
var_dump($req);
eio_event_loop();
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

resource(4) of type (EIO Request Descriptor)
string(14) "mes données personnalisées"
string(14) "mes données personnalisées"
int(2)
string(14) "mes données personnalisées"
int(1001)