XSComponent.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gbk" />
  5. <meta name="language" content="zh-cn" />
  6. <link rel="stylesheet" type="text/css" href="css/style.css" />
  7. <link rel="stylesheet" type="text/css" href="css/api.css" />
  8. <script type="text/javascript" src="js/jquery.js"></script>
  9. <title>XSComponent</title>
  10. </head>
  11. <body>
  12. <div id="apiPage">
  13. <div id="apiHeader">
  14. <a href="http://www.xunsearch.com" target="_blank">Xunsearch PHP-SDK</a> v1.3.2 API 参考文档
  15. </div><!-- end of header -->
  16. <div id="content" class="api-index">
  17. <h1>XSComponent</h1>
  18. <div id="nav">
  19. <a href="index.html">All Packages</a>
  20. | <a href="#methods">方法(函数)</a>
  21. </div>
  22. <table class="summaryTable docClass">
  23. <colgroup>
  24. <col class="col-name" />
  25. <col class="col-value" />
  26. </colgroup>
  27. <tr>
  28. <th>包</th>
  29. <td><a href="index.html#XS">XS</a></td>
  30. </tr>
  31. <tr>
  32. <th>继承关系</th>
  33. <td>class XSComponent</td>
  34. </tr>
  35. <tr>
  36. <th>子类</th>
  37. <td><a href="XS.html">XS</a>, <a href="XSCommand.html">XSCommand</a>, <a href="XSServer.html">XSServer</a></td>
  38. </tr>
  39. <tr>
  40. <th>版本</th>
  41. <td>1.0.0</td>
  42. </tr>
  43. <tr>
  44. <th>源代码</th>
  45. <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>
  46. </tr>
  47. </table>
  48. <div id="classDescription">
  49. XS 组件基类
  50. 封装一些魔术方法, 以实现支持模拟属性
  51. <br/><br/>
  52. 模拟属性通过定义读取函数, 写入函数来实现, 允许两者缺少其中一个
  53. 这类属性可以跟正常定义的属性一样存取, 但是这类属性名称不区分大小写. 例:
  54. <pre>
  55. $a = $obj-&gt;text; // $a 值等于 $obj-&gt;getText() 的返回值
  56. $obj-&gt;text = $a; // 等同事调用 $obj-&gt;setText($a)
  57. </pre></div>
  58. <a name="properties"></a>
  59. <a name="methods"></a>
  60. <div class="summary docMethod">
  61. <h2>Public 方法</h2>
  62. <p><a href="#" class="toggle">隐去继承来的方法</a></p>
  63. <table class="summaryTable">
  64. <colgroup>
  65. <col class="col-method" />
  66. <col class="col-description" />
  67. <col class="col-defined" />
  68. </colgroup>
  69. <tr>
  70. <th>名称</th><th>描述</th><th>定义于</th>
  71. </tr>
  72. <tr id="__get">
  73. <td><a href="XSComponent.html#__get-detail">__get()</a></td>
  74. <td>魔术方法 __get</td>
  75. <td>XSComponent</td>
  76. </tr>
  77. <tr id="__isset">
  78. <td><a href="XSComponent.html#__isset-detail">__isset()</a></td>
  79. <td>魔术方法 __isset</td>
  80. <td>XSComponent</td>
  81. </tr>
  82. <tr id="__set">
  83. <td><a href="XSComponent.html#__set-detail">__set()</a></td>
  84. <td>魔术方法 __set</td>
  85. <td>XSComponent</td>
  86. </tr>
  87. <tr id="__unset">
  88. <td><a href="XSComponent.html#__unset-detail">__unset()</a></td>
  89. <td>魔术方法 __unset</td>
  90. <td>XSComponent</td>
  91. </tr>
  92. </table>
  93. </div>
  94. <a name="events"></a>
  95. <h2>方法明细</h2>
  96. <div class="detailHeader" id="__get-detail">
  97. __get()
  98. <span class="detailHeaderTag">
  99. 方法
  100. </span>
  101. </div>
  102. <table class="summaryTable">
  103. <tr><td colspan="3">
  104. <div class="signature2">
  105. public mixed <b>__get</b>(string $name)</div>
  106. </td></tr>
  107. <tr>
  108. <td class="paramNameCol">$name</td>
  109. <td class="paramTypeCol">string</td>
  110. <td class="paramDescCol">属性名称</td>
  111. </tr>
  112. <tr>
  113. <td class="paramNameCol">{return}</td>
  114. <td class="paramTypeCol">mixed</td>
  115. <td class="paramDescCol">属性值</td>
  116. </tr>
  117. </table>
  118. <div class="sourceCode">
  119. <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>)
  120. <div class="code"><code><span style="color: #000000">
  121. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">__get</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$getter&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'get'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">method_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$getter</span><span style="color: #007700">))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">$getter</span><span style="color: #007700">();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;throw&nbsp;exception<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$msg&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">method_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'set'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$name</span><span style="color: #007700">)&nbsp;?&nbsp;</span><span style="color: #DD0000">'Write-only'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'Undefined'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$msg&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">'&nbsp;property:&nbsp;'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">get_class</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #DD0000">'::$'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;</span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #0000BB">$msg</span><span style="color: #007700">);<br />}</span>
  122. </span>
  123. </code></div>
  124. </div>
  125. <p>魔术方法 __get
  126. 取得模拟属性的值, 内部实际调用 getXxx 方法的返回值</p>
  127. <div class="detailHeader" id="__isset-detail">
  128. __isset()
  129. <span class="detailHeaderTag">
  130. 方法
  131. </span>
  132. </div>
  133. <table class="summaryTable">
  134. <tr><td colspan="3">
  135. <div class="signature2">
  136. public bool <b>__isset</b>(string $name)</div>
  137. </td></tr>
  138. <tr>
  139. <td class="paramNameCol">$name</td>
  140. <td class="paramTypeCol">string</td>
  141. <td class="paramDescCol">属性名称</td>
  142. </tr>
  143. <tr>
  144. <td class="paramNameCol">{return}</td>
  145. <td class="paramTypeCol">bool</td>
  146. <td class="paramDescCol">若存在为 true, 反之为 false</td>
  147. </tr>
  148. </table>
  149. <div class="sourceCode">
  150. <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>)
  151. <div class="code"><code><span style="color: #000000">
  152. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">__isset</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">method_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'get'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$name</span><span style="color: #007700">);<br />}</span>
  153. </span>
  154. </code></div>
  155. </div>
  156. <p>魔术方法 __isset
  157. 判断模拟属性是否存在并可读取</p>
  158. <div class="detailHeader" id="__set-detail">
  159. __set()
  160. <span class="detailHeaderTag">
  161. 方法
  162. </span>
  163. </div>
  164. <table class="summaryTable">
  165. <tr><td colspan="3">
  166. <div class="signature2">
  167. public void <b>__set</b>(string $name, mixed $value)</div>
  168. </td></tr>
  169. <tr>
  170. <td class="paramNameCol">$name</td>
  171. <td class="paramTypeCol">string</td>
  172. <td class="paramDescCol">属性名称</td>
  173. </tr>
  174. <tr>
  175. <td class="paramNameCol">$value</td>
  176. <td class="paramTypeCol">mixed</td>
  177. <td class="paramDescCol">属性值</td>
  178. </tr>
  179. </table>
  180. <div class="sourceCode">
  181. <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>)
  182. <div class="code"><code><span style="color: #000000">
  183. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">__set</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$value</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$setter&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'set'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">method_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$setter</span><span style="color: #007700">))<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">$setter</span><span style="color: #007700">(</span><span style="color: #0000BB">$value</span><span style="color: #007700">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #FF8000">//&nbsp;throw&nbsp;exception<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$msg&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">method_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'get'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$name</span><span style="color: #007700">)&nbsp;?&nbsp;</span><span style="color: #DD0000">'Read-only'&nbsp;</span><span style="color: #007700">:&nbsp;</span><span style="color: #DD0000">'Undefined'</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$msg&nbsp;</span><span style="color: #007700">.=&nbsp;</span><span style="color: #DD0000">'&nbsp;property:&nbsp;'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">get_class</span><span style="color: #007700">(</span><span style="color: #0000BB">$this</span><span style="color: #007700">)&nbsp;.&nbsp;</span><span style="color: #DD0000">'::$'&nbsp;</span><span style="color: #007700">.&nbsp;</span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;new&nbsp;</span><span style="color: #0000BB">XSException</span><span style="color: #007700">(</span><span style="color: #0000BB">$msg</span><span style="color: #007700">);<br />}</span>
  184. </span>
  185. </code></div>
  186. </div>
  187. <p>魔术方法 __set
  188. 设置模拟属性的值, 内部实际是调用 setXxx 方法</p>
  189. <div class="detailHeader" id="__unset-detail">
  190. __unset()
  191. <span class="detailHeaderTag">
  192. 方法
  193. </span>
  194. </div>
  195. <table class="summaryTable">
  196. <tr><td colspan="3">
  197. <div class="signature2">
  198. public void <b>__unset</b>(string $name)</div>
  199. </td></tr>
  200. <tr>
  201. <td class="paramNameCol">$name</td>
  202. <td class="paramTypeCol">string</td>
  203. <td class="paramDescCol">属性名称</td>
  204. </tr>
  205. </table>
  206. <div class="sourceCode">
  207. <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>)
  208. <div class="code"><code><span style="color: #000000">
  209. <span style="color: #0000BB"></span><span style="color: #007700">public&nbsp;function&nbsp;</span><span style="color: #0000BB">__unset</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">__set</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">null</span><span style="color: #007700">);<br />}</span>
  210. </span>
  211. </code></div>
  212. </div>
  213. <p>魔术方法 __unset
  214. 删除、取消模拟属性, 相当于设置属性值为 null</p>
  215. </div><!-- end of content -->
  216. <div id="apiFooter">
  217. Copyright &copy; 2008-2011 by <a href="http://www.xunsearch.com" target="_blank">杭州云圣网络科技有限公司</a><br/>
  218. All Rights Reserved.<br/>
  219. </div><!-- end of footer -->
  220. <script type="text/javascript">
  221. /*<![CDATA[*/
  222. $("a.toggle").toggle(function(){
  223. $(this).text($(this).text().replace(/Hide/,'Show'));
  224. $(this).parents(".summary").find(".inherited").hide();
  225. },function(){
  226. $(this).text($(this).text().replace(/Show/,'Hide'));
  227. $(this).parents(".summary").find(".inherited").show();
  228. });
  229. $(".sourceCode a.show").toggle(function(){
  230. $(this).text($(this).text().replace(/show/,'hide'));
  231. $(this).parents(".sourceCode").find("div.code").show();
  232. },function(){
  233. $(this).text($(this).text().replace(/hide/,'show'));
  234. $(this).parents(".sourceCode").find("div.code").hide();
  235. });
  236. $("a.sourceLink").click(function(){
  237. $(this).attr('target','_blank');
  238. });
  239. /*]]>*/
  240. </script>
  241. </div><!-- end of page -->
  242. </body>
  243. </html>