Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

runkit_sandbox_output_handler(3) [php man page]

RUNKIT_SANDBOX_OUTPUT_HANDLER(3)					 1					  RUNKIT_SANDBOX_OUTPUT_HANDLER(3)

runkit_sandbox_output_handler - Specify a function to capture and/or process output from a runkit sandbox

SYNOPSIS
mixed runkit_sandbox_output_handler (object $sandbox, [mixed $callback]) DESCRIPTION
Ordinarily, anything output (such as with echo(3) or print(3)) will be output as though it were printed from the parent's scope. Using runkit_sandbox_output_handler(3) however, output generated by the sandbox (including errors), can be captured by a function outside of the sandbox. Note Sandbox support (required for runkit_lint(3), runkit_lint_file(3), and the Runkit_Sandbox class) is only available as of PHP 5.1.0 or specially patched versions of PHP 5.0, and requires that thread safety be enabled. See the README file included in the runkit package for more information. Note Deprecated As of runkit version 0.5, this function is deprecated and is scheduled to be removed from the package prior to a 1.0 release. The output handler for a given Runkit_Sandbox instance may be read/set using the array offset syntax shown on the Runkit_Sandbox class definition page. PARAMETERS
o $sandbox - Object instance of Runkit_Sandbox class on which to set output handling. o $callback - Name of a function which expects one parameter. Output generated by $sandbox will be passed to this callback. Anything returned by the callback will be displayed normally. If this parameter is not passed then output handling will not be changed. If a non- truth value is passed, output handling will be disabled and will revert to direct display. RETURN VALUES
Returns the name of the previously defined output handler callback, or FALSE if no handler was previously defined. EXAMPLES
Example #1 Feeding output to a 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("Hello "); $php->eval('var_dump("Excuse me");'); $php->die("I lost myself."); unset($php); echo "Sandbox Complete "; echo $sandbox_output; ?> The above example will output: Sandbox Complete Hello string(9) "Excuse me" I lost myself. PHP Documentation Group RUNKIT_SANDBOX_OUTPUT_HANDLER(3)

Check Out this Related Man Page

RUNKIT_SANDBOX_PARENT(3)						 1						  RUNKIT_SANDBOX_PARENT(3)

Runkit_Sandbox_Parent - Runkit Anti-Sandbox Class

SYNOPSIS
void Runkit_Sandbox_Parent::__construct (void ) DESCRIPTION
Instantiating the Runkit_Sandbox_Parent class from within a sandbox environment created from the Runkit_Sandbox class provides some (con- trolled) means for a sandbox child to access its parent. Note Sandbox support (required for runkit_lint(3), runkit_lint_file(3), and the Runkit_Sandbox class) is only available as of PHP 5.1.0 or specially patched versions of PHP 5.0, and requires that thread safety be enabled. See the README file included in the runkit package for more information. In order for any of the Runkit_Sandbox_Parent features to function. Support must be enabled on a per-sandbox basis by enabling the par- ent_access flag from the parent's context. Example #1 Working with variables in a sandbox <?php $sandbox = new Runkit_Sandbox(); $sandbox['parent_access'] = true; ?> ACCESSING THE PARENT'S VARIABLES Just as with sandbox variable access, a sandbox parent's variables may be read from and written to as properties of the Runkit_Sand- box_Parent class. Read access to parental variables may be enabled with the parent_read setting (in addition to the base parent_access set- ting). Write access, in turn, is enabled through the parent_write setting. Unlike sandbox child variable access, the variable scope is not limited to globals only. By setting the parent_scope setting to an appro- priate integer value, other scopes in the active call stack may be inspected instead. A value of 0 (Default) will direct variable access at the global scope. 1 will point variable access at whatever variable scope was active at the time the current block of sandbox code was exe- cuted. Higher values progress back through the functions that called the functions that led to the sandbox executing code that tried to access its own parent's variables. Example #2 Accessing parental variables <?php $php = new Runkit_Sandbox(); $php['parent_access'] = true; $php['parent_read'] = true; $test = "Global"; $php->eval('$PARENT = new Runkit_Sandbox_Parent;'); $php['parent_scope'] = 0; one(); $php['parent_scope'] = 1; one(); $php['parent_scope'] = 2; one(); $php['parent_scope'] = 3; one(); $php['parent_scope'] = 4; one(); $php['parent_scope'] = 5; one(); function one() { $test = "one()"; two(); } function two() { $test = "two()"; three(); } function three() { $test = "three()"; $GLOBALS['php']->eval('var_dump($PARENT->test);'); } ?> The above example will output: string(6) "Global" string(7) "three()" string(5) "two()" string(5) "one()" string(6) "Global" string(6) "Global" CALLING THE PARENT'S FUNCTIONS Just as with sandbox access, a sandbox may access its parents functions providing that the proper settings have been enabled. Enabling parent_call will allow the sandbox to call all functions available to the parent scope. Language constructs are each controlled by their own setting: print(3) and echo(3) are enabled with parent_echo. die(3) and exit(3) are enabled with parent_die. eval(3) is enabled with parent_eval while include(3), include_once(3), require(3), and require_once(3) are enabled through parent_include. PHP Documentation Group RUNKIT_SANDBOX_PARENT(3)
Man Page