PHP SoapClient代码完成

PHP SoapClient代码完成,php,soap,Php,Soap,让我们设想一段在PHP中使用SoapClient的标准代码: $client = new SoapClient(/* arguments here */); $result1 = $client->invokeSomeApiMethod($arg1, $arg2); $result2 = $client->invokeSomeOtherApiMethod($arg3); 我想知道,是否有一种方法可以将特定服务的API指定给我正在使用PhpStorm的IDE,以便获得代码完成、基本参

让我们设想一段在PHP中使用SoapClient的标准代码:

$client = new SoapClient(/* arguments here */);
$result1 = $client->invokeSomeApiMethod($arg1, $arg2);
$result2 = $client->invokeSomeOtherApiMethod($arg3);
我想知道,是否有一种方法可以将特定服务的API指定给我正在使用PhpStorm的IDE,以便获得代码完成、基本参数验证等等,这样IDE就可以知道这个特定的SoapClient实例确实存在InvokeSomeapyMethod,并且它接受一些参数列表

目前我看到的唯一方法是声明一个类,该类的接口将对应于web服务的API,并为SoapClient实例创建注释:

class SomeApi extends SoapClient
{
    public function invokeSomeApiMethod($arg1, $arg2)
    {
    }

    public function invokeSomeOtherApiMethod($arg3, $arg4 = null)
    {
    }
}

/** @var SomeApi $client */
$client = new SoapClient(/* arguments here */);

但对我来说,这看起来很奇怪。也许你们中有人用了其他方法?

这并不奇怪。。并不是所有的IDE都会在运行时加载WSDL,这样您就可以访问SOAP方法调用,但我要说的是一种更一般的东西,一种在IDE中指定对象动态实现的API的方法。有很多这样的例子,例如Zend框架中的视图助手:$view=newZendView$查看->url/*参数*/;ZendView实例的url方法在物理上并不存在,但它是通过调用magic方法实现的。等等,这并不奇怪。。并不是所有的IDE都会在运行时加载WSDL,这样您就可以访问SOAP方法调用,但我要说的是一种更一般的东西,一种在IDE中指定对象动态实现的API的方法。有很多这样的例子,例如Zend框架中的视图助手:$view=newZendView$查看->url/*参数*/;ZendView实例的url方法在物理上并不存在,但它是通过调用magic方法实现的。等等