1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.3 $ -->
<refentry id="function.runkit-sandbox-output-handler">
<refnamediv>
<refname>runkit_sandbox_output_handler</refname>
<refpurpose>
Specify a function to capture and/or process output from a runkit sandbox
</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>runkit_sandbox_output_handler</methodname>
<methodparam><type>object</type><parameter>sandbox</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter>callback</parameter></methodparam>
</methodsynopsis>
<para>
Ordinarily, anything output (such as with <function>echo</function>
or <function>print</function>) will be output as though it were printed
from the parent's scope. Using <function>runkit_sandbox_output_handler</function>
however, output generated by the sandbox (including errors), can be captured
by a function outside of the sandbox.
</para>
¬e.runkit.sandbox;
<note>
<title>Deprecated</title>
<para>
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 <link linkend="runkit.sandbox">Runkit_Sandbox</link> class definition page.
</para>
</note>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>sandbox</parameter></term>
<listitem>
<para>
Object instance of Runkit_Sandbox class on which to set output handling.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>callback</parameter></term>
<listitem>
<para>
Name of a function which expects one parameter.
Output generated by <parameter>sandbox</parameter> 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.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns the name of the previously defined output handler callback, or
&false; if no handler was previously defined.
</para>
</refsect1>
<!-- TODO: Move this example to runkit.sandbox -->
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Feeding output to a variable</title>
<programlisting role="php">
<![CDATA[
<?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\n");
$php->eval('var_dump("Excuse me");');
$php->die("I lost myself.");
unset($php);
echo "Sandbox Complete\n\n";
echo $sandbox_output;
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
Sandbox Complete
Hello
string(9) "Excuse me"
I lost myself.
]]>
</screen>
</example>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
|