如何指定php2wsdl @param cardinality?

时间:2016-08-25 12:34:11

标签: php soap wsdl

我希望生成一个WSDL,以便SoapUI将请求模拟为:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="https://v121d164.prevnet/webservices/server.php">
  <soapenv:Header/>
  <soapenv:Body>
    <ser:myService soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <!--Zero or more repetitions:-->
      <code xsi:type="xsd:string">?</code>
    </ser:myService>
  </soapenv:Body>
</soapenv:Envelope>

PHP2WSDL文档包含实例变量的示例:

/**
 * @var string
 * @maxOccurs 0
 */

但它没有提到params。 我试过用

/**
 * @param string
 * @maxOccurs 0
 */

但没有运气。

1 个答案:

答案 0 :(得分:0)

创建一个类并将其用作方法的参数。您可以使用@minOccurs标记为该类的属性定义基数:

Class MyServiceInput
{
   /**
    * @var string
    * @minOccurs 0
    */
   public $str;
}

class MyService
{
   /**
    * @soap
    * @param MyServiceInput $inputParam
    */
    public function myMethod($inputParam)
    {
    }
}