首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Symfony2中调用SOAP web服务

在Symfony2中调用SOAP web服务
EN

Stack Overflow用户
提问于 2015-11-10 00:18:21
回答 1查看 1.1K关注 0票数 1

在我的Symfony2项目中,我需要对WebService进行SOAP调用,所以我使用composer安装了besimple/soap-client,并进行了如下配置:

parameters.yml:

soap_options: wsdl: wsdl/test.wsdl

在services.xml中

代码语言:javascript
复制
<!-- Soap Client -->
<service id="project.test.soap.wrapper"
        class="Project\Test\Soap\SoapClientWrapper">
    <argument key="soap_options">%soap_options%</argument>
</service>

然后,我将这个服务注入到我的Dto/TestTemplate.php文件中

接下来,我在besimple/soap-client创建的Soap目录中创建了一个存储库目录,并在该存储库中添加了TestAttrebiutes.php文件:

代码语言:javascript
复制
namespace Project\Test\Soap\Repositories;

class TestAttributes {

    public $agentID;
    public $sourceChannel;
    public $organisationName;

    public function __construct(
        $agentID,
        $sourceChannel,
        $organisationName,
    ){
        $this->$agentID = $agentID;
        $this->$sourceChannel = $sourceChannel;
        $this->$organisationName = $organisationName;
    }
} 

所以现在在我的TestTemplate.php中,我希望做这样的事情:

代码语言:javascript
复制
$this->soap->__call(new FttpStatusAttributes(
    '100',
    'Web',
    'Ferrari'
), **ASKING FOR ATTRIBUTES);

但它要求我在添加属性后立即添加它们,我做错了什么?有可能按照我尝试的方式来做吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-10 05:41:42

以下代码可能是问题所在:

代码语言:javascript
复制
$this->$agentID = $agentID;
$this->$sourceChannel = $sourceChannel;
$this->$organisationName = $organisationName;

当您访问$this->$agentID时,您访问的是$this的一个值为$agentID的成员。比方说,如果$agentIDjohn123,你的代码实际上意味着

代码语言:javascript
复制
$this->john123 = 'john123';

这显然不是你想要的。您的代码应为:

代码语言:javascript
复制
$this->agentID = $agentID;
$this->sourceChannel = $sourceChannel;
$this->organisationName = $organisationName;

老实说,我不知道这是否解决了问题,因为你的问题有点模糊,但这肯定是你想要解决的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33613471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档