File: runkit-sandbox-output-handler.xml

package info (click to toggle)
php-doc 20061001-1
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 45,764 kB
  • ctags: 1,611
  • sloc: xml: 502,485; php: 7,645; cpp: 500; makefile: 297; perl: 161; sh: 141; awk: 28
file content (141 lines) | stat: -rw-r--r-- 3,838 bytes parent folder | download
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>

  &note.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
-->