| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
- <meta name="language" content="zh-cn" />
- <link rel="stylesheet" type="text/css" href="css/style.css" />
- <link rel="stylesheet" type="text/css" href="css/api.css" />
- <script type="text/javascript" src="js/jquery.js"></script>
- <title>XSComponent</title>
- </head>
- <body>
- <div id="apiPage">
- <div id="apiHeader">
- <a href="http://www.xunsearch.com" target="_blank">Xunsearch PHP-SDK</a> v1.3.2 API 参考文档
- </div><!-- end of header -->
- <div id="content" class="api-index">
- <h1>XSComponent</h1>
- <div id="nav">
- <a href="index.html">All Packages</a>
- | <a href="#methods">方法(函数)</a>
- </div>
- <table class="summaryTable docClass">
- <colgroup>
- <col class="col-name" />
- <col class="col-value" />
- </colgroup>
- <tr>
- <th>包</th>
- <td><a href="index.html#XS">XS</a></td>
- </tr>
- <tr>
- <th>继承关系</th>
- <td>class XSComponent</td>
- </tr>
- <tr>
- <th>子类</th>
- <td><a href="XS.html">XS</a>, <a href="XSCommand.html">XSCommand</a>, <a href="XSServer.html">XSServer</a></td>
- </tr>
- <tr>
- <th>版本</th>
- <td>1.0.0</td>
- </tr>
- <tr>
- <th>源代码</th>
- <td><a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XS.class.php">sdk/php/lib/XS.class.php</a></td>
- </tr>
- </table>
- <div id="classDescription">
- XS 组件基类
- 封装一些魔术方法, 以实现支持模拟属性
- <br/><br/>
- 模拟属性通过定义读取函数, 写入函数来实现, 允许两者缺少其中一个
- 这类属性可以跟正常定义的属性一样存取, 但是这类属性名称不区分大小写. 例:
- <pre>
- $a = $obj->text; // $a 值等于 $obj->getText() 的返回值
- $obj->text = $a; // 等同事调用 $obj->setText($a)
- </pre></div>
- <a name="properties"></a>
- <a name="methods"></a>
- <div class="summary docMethod">
- <h2>Public 方法</h2>
- <p><a href="#" class="toggle">隐去继承来的方法</a></p>
- <table class="summaryTable">
- <colgroup>
- <col class="col-method" />
- <col class="col-description" />
- <col class="col-defined" />
- </colgroup>
- <tr>
- <th>名称</th><th>描述</th><th>定义于</th>
- </tr>
- <tr id="__get">
- <td><a href="XSComponent.html#__get-detail">__get()</a></td>
- <td>魔术方法 __get</td>
- <td>XSComponent</td>
- </tr>
- <tr id="__isset">
- <td><a href="XSComponent.html#__isset-detail">__isset()</a></td>
- <td>魔术方法 __isset</td>
- <td>XSComponent</td>
- </tr>
- <tr id="__set">
- <td><a href="XSComponent.html#__set-detail">__set()</a></td>
- <td>魔术方法 __set</td>
- <td>XSComponent</td>
- </tr>
- <tr id="__unset">
- <td><a href="XSComponent.html#__unset-detail">__unset()</a></td>
- <td>魔术方法 __unset</td>
- <td>XSComponent</td>
- </tr>
- </table>
- </div>
- <a name="events"></a>
- <h2>方法明细</h2>
- <div class="detailHeader" id="__get-detail">
- __get()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public mixed <b>__get</b>(string $name)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$name</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">属性名称</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">mixed</td>
- <td class="paramDescCol">属性值</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XS.class.php#L184">sdk/php/lib/XS.class.php#L184</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">__get</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$getter </span><span style="color: #007700">= </span><span style="color: #DD0000">'get' </span><span style="color: #007700">. </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br /> if (</span><span style="color: #0000BB">method_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">, </span><span style="color: #0000BB">$getter</span><span style="color: #007700">))<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">$getter</span><span style="color: #007700">();<br /><br /> </span><span style="color: #FF8000">// throw exception<br /> </span><span style="color: #0000BB">$msg </span><span style="color: #007700">= </span><span style="color: #0000BB">method_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">, </span><span style="color: #DD0000">'set' </span><span style="color: #007700">. </span><span style="color: #0000BB">$name</span><span style="color: #007700">) ? </span><span style="color: #DD0000">'Write-only' </span><span style="color: #007700">: </span><span style="color: #DD0000">'Undefined'</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$msg </span><span style="color: #007700">.= </span><span style="color: #DD0000">' property: ' </span><span style="color: #007700">. </span><span style="color: #0000BB">get_class</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">) . </span><span style="color: #DD0000">'::$' </span><span style="color: #007700">. </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br /> throw new </span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #0000BB">$msg</span><span style="color: #007700">);<br />}</span>
- </span>
- </code></div>
- </div>
- <p>魔术方法 __get
- 取得模拟属性的值, 内部实际调用 getXxx 方法的返回值</p>
- <div class="detailHeader" id="__isset-detail">
- __isset()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public bool <b>__isset</b>(string $name)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$name</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">属性名称</td>
- </tr>
- <tr>
- <td class="paramNameCol">{return}</td>
- <td class="paramTypeCol">bool</td>
- <td class="paramDescCol">若存在为 true, 反之为 false</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XS.class.php#L221">sdk/php/lib/XS.class.php#L221</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">__isset</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">)<br />{<br /> return </span><span style="color: #0000BB">method_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">, </span><span style="color: #DD0000">'get' </span><span style="color: #007700">. </span><span style="color: #0000BB">$name</span><span style="color: #007700">);<br />}</span>
- </span>
- </code></div>
- </div>
- <p>魔术方法 __isset
- 判断模拟属性是否存在并可读取</p>
- <div class="detailHeader" id="__set-detail">
- __set()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public void <b>__set</b>(string $name, mixed $value)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$name</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">属性名称</td>
- </tr>
- <tr>
- <td class="paramNameCol">$value</td>
- <td class="paramTypeCol">mixed</td>
- <td class="paramDescCol">属性值</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XS.class.php#L203">sdk/php/lib/XS.class.php#L203</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">__set</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">, </span><span style="color: #0000BB">$value</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$setter </span><span style="color: #007700">= </span><span style="color: #DD0000">'set' </span><span style="color: #007700">. </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br /> if (</span><span style="color: #0000BB">method_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">, </span><span style="color: #0000BB">$setter</span><span style="color: #007700">))<br /> return </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">$setter</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br /><br /> </span><span style="color: #FF8000">// throw exception<br /> </span><span style="color: #0000BB">$msg </span><span style="color: #007700">= </span><span style="color: #0000BB">method_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">, </span><span style="color: #DD0000">'get' </span><span style="color: #007700">. </span><span style="color: #0000BB">$name</span><span style="color: #007700">) ? </span><span style="color: #DD0000">'Read-only' </span><span style="color: #007700">: </span><span style="color: #DD0000">'Undefined'</span><span style="color: #007700">;<br /> </span><span style="color: #0000BB">$msg </span><span style="color: #007700">.= </span><span style="color: #DD0000">' property: ' </span><span style="color: #007700">. </span><span style="color: #0000BB">get_class</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">) . </span><span style="color: #DD0000">'::$' </span><span style="color: #007700">. </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br /> throw new </span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #0000BB">$msg</span><span style="color: #007700">);<br />}</span>
- </span>
- </code></div>
- </div>
- <p>魔术方法 __set
- 设置模拟属性的值, 内部实际是调用 setXxx 方法</p>
- <div class="detailHeader" id="__unset-detail">
- __unset()
- <span class="detailHeaderTag">
- 方法
- </span>
- </div>
- <table class="summaryTable">
- <tr><td colspan="3">
- <div class="signature2">
- public void <b>__unset</b>(string $name)</div>
- </td></tr>
- <tr>
- <td class="paramNameCol">$name</td>
- <td class="paramTypeCol">string</td>
- <td class="paramDescCol">属性名称</td>
- </tr>
- </table>
- <div class="sourceCode">
- <b>源码:</b> <a class="sourceLink" href="https://github.com/hightman/xunsearch/blob/master/sdk/php/lib/XS.class.php#L231">sdk/php/lib/XS.class.php#L231</a> (<b><a href="#" class="show">显示</a></b>)
- <div class="code"><code><span style="color: #000000">
- <span style="color: #0000BB"></span><span style="color: #007700">public function </span><span style="color: #0000BB">__unset</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">)<br />{<br /> </span><span style="color: #0000BB">$this</span><span style="color: #007700">-></span><span style="color: #0000BB">__set</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">, </span><span style="color: #0000BB">null</span><span style="color: #007700">);<br />}</span>
- </span>
- </code></div>
- </div>
- <p>魔术方法 __unset
- 删除、取消模拟属性, 相当于设置属性值为 null</p>
- </div><!-- end of content -->
- <div id="apiFooter">
- Copyright © 2008-2011 by <a href="http://www.xunsearch.com" target="_blank">杭州云圣网络科技有限公司</a><br/>
- All Rights Reserved.<br/>
- </div><!-- end of footer -->
- <script type="text/javascript">
- /*<![CDATA[*/
- $("a.toggle").toggle(function(){
- $(this).text($(this).text().replace(/Hide/,'Show'));
- $(this).parents(".summary").find(".inherited").hide();
- },function(){
- $(this).text($(this).text().replace(/Show/,'Hide'));
- $(this).parents(".summary").find(".inherited").show();
- });
- $(".sourceCode a.show").toggle(function(){
- $(this).text($(this).text().replace(/show/,'hide'));
- $(this).parents(".sourceCode").find("div.code").show();
- },function(){
- $(this).text($(this).text().replace(/hide/,'show'));
- $(this).parents(".sourceCode").find("div.code").hide();
- });
- $("a.sourceLink").click(function(){
- $(this).attr('target','_blank');
- });
- /*]]>*/
- </script>
- </div><!-- end of page -->
- </body>
- </html>
|