uTools-Manuals/docs/php/eio_custom.html
2019-04-08 23:22:26 +08:00

179 lines
9.2 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Execute custom request like any other eio_* call</title>
</head>
<body class="docs"><div id="layout">
<div id="layout-content"><div id="function.eio-custom" class="refentry">
<div class="refnamediv">
<h1 class="refname">eio_custom</h1>
<p class="verinfo">(PECL eio &gt;= 0.0.1dev)</p><p class="refpurpose"><span class="refname">eio_custom</span> &mdash; <span class="dc-title">Execute custom request like any other <em class="emphasis">eio_*</em> call</span></p>
</div>
<div class="refsect1 description" id="refsect1-function.eio-custom-description">
<h3 class="title">说明</h3>
<div class="methodsynopsis dc-description">
<span class="methodname"><strong>eio_custom</strong></span>
( <span class="methodparam"><span class="type"><a href="language.types.callable.html" class="type callable">callable</a></span> <code class="parameter">$execute</code></span>
, <span class="methodparam"><span class="type">int</span> <code class="parameter">$pri</code></span>
, <span class="methodparam"><span class="type"><a href="language.types.callable.html" class="type callable">callable</a></span> <code class="parameter">$callback</code></span>
[, <span class="methodparam"><span class="type"><a href="language.pseudo-types.html#language.types.mixed" class="type mixed">mixed</a></span> <code class="parameter">$data</code><span class="initializer"> = NULL</span></span>
] ) : <span class="type">resource</span></div>
<p class="para rdfs-comment">
<span class="function"><strong>eio_custom()</strong></span> executes custom function specified by
<code class="parameter">execute</code> processing it just like any other <em class="emphasis">eio_*</em> call.
</p>
</div>
<div class="refsect1 parameters" id="refsect1-function.eio-custom-parameters">
<h3 class="title">参数</h3>
<dl>
<dt>
<code class="parameter">execute</code></dt>
<dd>
<p class="para">
Specifies the request function that should match the following prototype:
<div class="example-contents"><div class="cdata"><pre>
mixed execute(mixed data);
</pre></div></div>
<code class="parameter">callback</code> is event completion callback that should match the following
prototype:
<div class="example-contents"><div class="cdata"><pre>
void callback(mixed data, mixed result);
</pre></div></div>
<code class="parameter">data</code> is the data passed to
<code class="parameter">execute</code> via <code class="parameter">data</code> argument
without modifications
<code class="parameter">result</code> value returned by <code class="parameter">execute</code>
</p>
</dd>
<dt>
<code class="parameter">pri</code></dt>
<dd>
<p class="para">请求的优先级:<strong><code>EIO_PRI_DEFAULT</code></strong><strong><code>EIO_PRI_MIN</code></strong><strong><code>EIO_PRI_MAX</code></strong><strong><code>NULL</code></strong>。如果是
<strong><code>NULL</code></strong><code class="parameter">pri</code> 将设为
<strong><code>EIO_PRI_DEFAULT</code></strong>
</p>
</dd>
<dt>
<code class="parameter">callback</code></dt>
<dd>
<p class="para">
<code class="parameter">callback</code>
函数在请求完成时被调用。其应匹配一下原型:<div class="example-contents"><div class="phpcode"><pre><span style="color: #000000">
void&nbsp;callback(mixed&nbsp;$data,&nbsp;int&nbsp;$result[,&nbsp;resource&nbsp;$req]);</span>
</pre></div></div>
<dl>
<dt>
<code class="parameter">data</code></dt>
<dd>
<p class="para">传递给请求的用户数据。</p></dd>
<dt>
<code class="parameter">result</code></dt>
<dd>
<p class="para">针对请求的结果的值。通常是相应的系统调用返回的值。</p></dd>
<dt>
<code class="parameter">req</code></dt>
<dd>
<p class="para">可选的请求资源,可被 <span class="function"><a href="eio_get_last_error.html" class="function">eio_get_last_error()</a></span>
之类的函数使用。</p></dd>
</dl>
</p>
</dd>
<dt>
<code class="parameter">data</code></dt>
<dd>
<p class="para">
Arbitrary variable passed to <code class="parameter">callback</code>.
</p>
</dd>
</dl>
</div>
<div class="refsect1 returnvalues" id="refsect1-function.eio-custom-returnvalues">
<h3 class="title">返回值</h3>
<p class="para">
<span class="function"><strong>eio_custom()</strong></span> returns request resource on success or <strong><code>FALSE</code></strong> on error.
</p>
</div>
<div class="refsect1 examples" id="refsect1-function.eio-custom-examples">
<h3 class="title">范例</h3>
<div class="example" id="example-4270">
<p><strong>Example #1 <span class="function"><strong>eio_custom()</strong></span> example</strong></p>
<div class="example-contents">
<div class="phpcode"><pre><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">/*&nbsp;Callback&nbsp;for&nbsp;the&nbsp;custom&nbsp;callback&nbsp;*/<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">my_custom_callback</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$result</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">count</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">[</span><span style="color: #DD0000">'data_modified'</span><span style="color: #007700">]);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$result</span><span style="color: #007700">[</span><span style="color: #DD0000">'result'</span><span style="color: #007700">]);<br />}<br /><br /></span><span style="color: #FF8000">/*&nbsp;The&nbsp;custom&nbsp;request&nbsp;*/<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">my_custom</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$result&nbsp;&nbsp;</span><span style="color: #007700">=&nbsp;array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'result'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #0000BB">1001</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'data_modified'&nbsp;</span><span style="color: #007700">=&gt;&nbsp;</span><span style="color: #DD0000">"my&nbsp;custom&nbsp;data"</span><span style="color: #007700">,<br />&nbsp;&nbsp;&nbsp;&nbsp;);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$result</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">$data&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"my_custom_data"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$req&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">eio_custom</span><span style="color: #007700">(</span><span style="color: #DD0000">"my_custom"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">EIO_PRI_DEFAULT</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"my_custom_callback"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$data</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$req</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">eio_event_loop</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</pre></div>
</div>
<div class="example-contents"><p>以上例程的输出类似于:</p></div>
<div class="example-contents screen">
<div class="cdata"><pre>
resource(4) of type (EIO Request Descriptor)
string(14) &quot;my_custom_data&quot;
string(14) &quot;my_custom_data&quot;
int(2)
string(14) &quot;my custom data&quot;
int(1001)
</pre></div>
</div>
</div>
</div>
</div></div></div></body></html>