(PECL eio >= 0.0.1dev)
eio_grp — Crear un grupo de peticiones
eio_grp() crea un grupo de peticiones.
callback
La función callback
es llamada cuando la petición está hecha.
Debería seguir el siguiente prototipo:
void callback(mixed $data, int $result[, resource $req]);
data
son datos personalizados pasados a la petición.
result
es el valor del resultado específico de la petición; básicamente, el valor devuelto por la correspondiente llamada al sistema.
req
es el recurso de petición opcional que puede usarse con funciones como eio_get_last_error()
data
Variable arbitraria pasada a callback
.
eio_grp() devuelve un recurso de grupo de peticiones en caso de éxito, o false
en caso de error.
Ejemplo #1 Ejemplo de eio_grp()
<?php
$nombre_fichero_temp = dirname(__FILE__) ."/fichero-eio.tmp";
$fp = fopen($nombre_fichero_temp, "w");
fwrite($fp, "algunos datos");
fclose($fp);
$mi_df_fichero = NULL;
/* Es llamada cuando el grupo de peticiones está hecho */
function mi_grupo_hecho($datos, $resultado) {
// Eliminar el fichero, si aún existe
@unlink($datos);
}
/* Es llamada al abrir el fichero temporal */
function mi_llamada_retorno_grupo_fichero_abierto($datos, $resultado) {
global $mi_df_fichero, $grupo;
$mi_df_fichero = $resultado;
$petición = eio_read($mi_df_fichero, 4, 0,
EIO_PRI_DEFAULT, "mi_llamada_retorno_grupo_fichero_leído");
eio_grp_add($grupo, $petición);
}
/* Es llamada cuando el fichero es leído */
function mi_llamada_retorno_grupo_fichero_leído($datos, $resultado) {
global $mi_df_fichero, $grupo;
var_dump($resultado);
// Crear una petición para cerrar el fichero
$petición = eio_close($mi_df_fichero);
// Añadir la petición al grupo
eio_grp_add($grupo, $petición);
}
// Crear un grupo de peticiones
$grupo = eio_grp("mi_grupo_hecho", $nombre_fichero_temp);
// Crear una petición
$petición = eio_open($nombre_fichero_temp, EIO_O_RDWR | EIO_O_APPEND , NULL,
EIO_PRI_DEFAULT, "mi_llamada_retorno_grupo_fichero_abierto", NULL);
// Añadir la petición al grupo
eio_grp_add($grupo, $petición);
// Procesar las peticiones
eio_event_loop();
?>
El resultado del ejemplo sería algo similar a:
string(7) "algunos"