runkit_sandbox_output_handler

(PECL runkit >= 0.7.0)

runkit_sandbox_output_handler Especificar una función para capturar y/o procesar la salida de un aislamiento de procesos de runkit

Descripción

runkit_sandbox_output_handler ( object $sandbox [, mixed $callback ] ) : mixed

Normalmente, cuanquier cosa que realice una salida (como echo o print) será sacada como si fuera impresa desde el ámbito padre. Sin embargo, al usar runkit_sandbox_output_handler(), la salida generada por el aislamiento de procesos (inclueyndo errores) puede ser capturada por una función fuera del aislamiento de procesos.

Nota: Soporte para Entorno de Pruebas (requerido por runkit_lint(), runkit_lint_file(), y la clase Runkit_Sandbox) está disponible sólo a partir de PHP 5.1.0 o versiones especialmente parcheadas de PHP 5.0, y requiere que thread safety sea habilitada. Vea el archivo README incluido en el paquete runkit para más información.

Nota: Obsoleto

A partir de la versión 0.5 de runkit, esta función está obsoleta y está programada para ser eliminada del paquete antes de la distribución de la versión 1.0. Para una instancia de Runkit_Sandbox, el gestor de salida puede ser leído/establecido usando la sintaxis de índice de array mostrado en la página de definición de la clase Runkit_Sandbox.

Parámetros

sandbox

Instancia de objeto de la clase Runkit_Sandbox en la que establecer el gestor de salida.

callback

Nombre de una función que espera un parámetro. La salida generada por sandbox será pasada a esta llamada de retorno (callback). Cualquier cosa devuelta por la llamda de retorno será mostrada normalmente. Si este parámetro no se pasa, la gestión de salida no será cambiada. Si se pasa un valor no verdadero, la gestión de salida será deshabilitada y será vuelta a la muestra directa.

Valores devueltos

Devuelve el nombre de la llamada de retorno del gestor de salida definido previamente, o FALSE si no se definió previamente un gestor.

Ejemplos

Ejemplo #1 Introducir la salida en una variable

<?php
function capture_output($str) {
  
$GLOBALS['sandbox_output'] .= $str;

  return 
'';
}

$sandbox_output '';

$php = new Runkit_Sandbox();
runkit_sandbox_output_handler($php'capture_output');
$php->echo("Hola\n");
$php->eval('var_dump("Lo siento");');
$php->die("Me perdí.");
unset(
$php);

echo 
"Sandbox Completado\n\n";
echo 
$sandbox_output;
?>

El resultado del ejemplo sería:

Sandbox Completado

Hola
string(9) "Lo sientoe"
Me perdí.