Вызов SOAP веб-сервиса в Symfony2

1

В моем проекте Symfony2 мне нужно сделать SOAP-вызов в WebService, поэтому я установил besimple/soap-client с помощью композитора и настроил его следующим образом:

parameters.yml:

soap_options: wsdl: wsdl/test.wsdl

В services.xml

<!-- Soap Client -->
<service id="project.test.soap.wrapper"
        class="Project\Test\Soap\SoapClientWrapper">
    <argument key="soap_options">%soap_options%</argument>
</service>

Затем я ввел эту услугу в один из моих Dto/TestTemplate.php

Затем я создал каталог репозиториев в моем каталоге Soap, созданным besimple/soap-client, в этом репозитории я добавил файл TestAttrebiutes.php:

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 я бы хотел сделать что-то вроде этого:

$this->soap->__call(new FttpStatusAttributes(
    '100',
    'Web',
    'Ferrari'
), **ASKING FOR ATTRIBUTES);

но он просит меня добавить атрибуты сразу после того, как я их добавлю, что я делаю неправильно, это возможно сделать так, как я пытаюсь это сделать..?

Теги:
soap
web-services
wsdl

1 ответ

1

Этот код может быть проблемой:

$this->$agentID = $agentID;
$this->$sourceChannel = $sourceChannel;
$this->$organisationName = $organisationName;

Когда вы $this->$agentID к $this->$agentID, вы получаете доступ к члену $this который имеет значение $agentID. Так, например, если $agentID был, скажем, john123, ваш код на самом деле означал бы

$this->john123 = 'john123';

Это явно не то, что вы хотите. Ваш код должен читать:

$this->agentID = $agentID;
$this->sourceChannel = $sourceChannel;
$this->organisationName = $organisationName;

Честно говоря, я не знаю, решает ли это проблему, так как ваш вопрос немного расплывчатый, но это определенно то, что вы хотите исправить.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню