sca.examples.structures.html
来自「php的帮助文档,涉及到PHP的案例和基本语法,以及实际应用内容」· HTML 代码 · 共 244 行 · 第 1/2 页
HTML
244 行
<p class="para"> We switch to a new example in order to illustrate the creation of SDOs, both to pass to a service, and to be returned from a service. </p> </div> <div id="sca.examples.structures.services" class="section"> <h2 class="title">Creating an SDO to pass to a service</h2> <p class="para"> A caller of a service which requires a data structure to be passed in to it uses the proxy to the service as the data factory for the corresponding SDOs. For example, suppose a component makes use of a proxy for a service provided by a local AddressBook component. </p> <p class="para"> <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">/**<br /> * @reference<br /> * @binding.local AddressBook.php<br /> */<br /></span><span style="color: #0000BB">$address_book</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?></span></span></code></div> </div> </p> <p class="para"> The AddressBook component that it wishes to call is defined as follows: </p> <p class="para"> <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br /></span><span style="color: #FF8000">/**<br />* @service<br />* @binding.soap<br />* @types http://addressbook ../AddressBook/AddressBook.xsd<br />*/<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">AddressBook </span><span style="color: #007700">{<br /><br /> </span><span style="color: #FF8000">/**<br /> * @param personType $person http://addressbook (a person object)<br /> * @return addressType http://addressbook (the address object for the person object)<br /> */<br /> </span><span style="color: #007700">function </span><span style="color: #0000BB">lookupAddress</span><span style="color: #007700">(</span><span style="color: #0000BB">$person</span><span style="color: #007700">) {<br /> ...<br /> }<br />}<br /></span><span style="color: #0000BB">?></span></span></code></div> </div> </p> <p class="para"> The AddressBook component provides a service method called <b>lookupAddress()</b> which uses types from the http://addressbook namespace. The lookupAddress method takes a personType data structure and returns an addressType. Both types are defined in the schema file addressbook.xsd. </p> <p class="para"> Once the component that wishes to use the AddressBook component has been constructed, so that the <var class="varname">$address_book</var> instance variable contains a proxy for the service, the calling component can use the proxy in <var class="varname">$address_book</var> to create the person SDO, as shown below: </p> <p class="para"> <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br />$william_shakespeare </span><span style="color: #007700">= </span><span style="color: #0000BB">$address_book</span><span style="color: #007700">-></span><span style="color: #0000BB">createDataObject</span><span style="color: #007700">(</span><span style="color: #DD0000">'http://addressbook'</span><span style="color: #007700">,</span><span style="color: #DD0000">'personType'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$william_shakespeare </span><span style="color: #007700">-></span><span style="color: #0000BB">name </span><span style="color: #007700">= </span><span style="color: #DD0000">"William Shakespeare"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$address </span><span style="color: #007700">= </span><span style="color: #0000BB">$address_book</span><span style="color: #007700">-></span><span style="color: #0000BB">lookupAddress</span><span style="color: #007700">(</span><span style="color: #0000BB">$william_shakespeare</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span></span></code></div> </div> </p> <p class="para"> Note, the use of the proxy as the means to create the SDO is not limited to SCA components. If a service is being called from a general PHP script, and the proxy was obtained with <b>getService()</b> then the same approach is used. </p> <p class="para"> <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br />$address_book </span><span style="color: #007700">= </span><span style="color: #0000BB">SCA</span><span style="color: #007700">::</span><span style="color: #0000BB">getService</span><span style="color: #007700">(</span><span style="color: #DD0000">'AddressBook.php'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">$william_shakespeare </span><span style="color: #007700">= </span><span style="color: #0000BB">$address_book</span><span style="color: #007700">-></span><span style="color: #0000BB">createDataObject</span><span style="color: #007700">(</span><span style="color: #DD0000">'http://addressbook'</span><span style="color: #007700">,</span><span style="color: #DD0000">'personType'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span></span></code></div> </div> </p> </div> <div id="sca.examples.structures.services.returning" class="section"> <h2 class="title"> Creating an SDO to return from a component </h2> <p class="para"> A component that needs to create a data object for return to a caller will not have a proxy to use as a data object, In this case it uses the <b>createDataObject()</b> static method on <var class="filename">SCA.php</var>. Hence if the AddressBook component described above needed to create an object of type <b class="classname">addressType</b> within the namespace http://addressbook, it might do so as follows: </p> <p class="para"> <div class="example-contents"><div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB"><?php<br />$address </span><span style="color: #007700">= </span><span style="color: #0000BB">SCA</span><span style="color: #007700">::</span><span style="color: #0000BB">createDataObject</span><span style="color: #007700">(</span><span style="color: #DD0000">'http://addressbook'</span><span style="color: #007700">,</span><span style="color: #DD0000">'addressType'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></span></span></code></div> </div> </p> </div> </div><hr /><div style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="SCA.examples.understanding-wsdl.html">Understanding how the WSDL is generated</a></div> <div class="next" style="text-align: right; float: right;"><a href="SCA.examples.errorhandling.html">Error handling</a></div> <div class="up"><a href="sca.examples.html">Examples</a></div> <div class="home"><a href="index.html">PHP Manual</a></div></div></body></html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?