It is highly recommended not to instantiate BeSimple\SoapBundle\Soap\SoapResponse
but to use the service besimple.soap.response
Before:
public function helloAction($name)
{
return new SoapResponse("Hello ".$name);
}
After:
public function helloAction($name)
{
return $this
->container
->get('besimple.soap.response')
->setReturnValue("Hello ".$name)
;
}
The exposure of complex type properties was done only with public property.
Now you can expose properties and public methods.
Before:
In a complex type:
/**
* @var string
*/
public $var;
After:
In a complex type:
use BeSimple\SoapBundle\ServiceDefinition\Annotation as Soap;
/**
* @Soap\PropertyComplexType("string", name="var", nillable="true")
*/
public $username;
private $email;
/**
* @Soap\MethodComplexType("string", name="email", nillable="true", setter="setEmail")
*/
public function getEmail()
{
return $this->email;
}
public function setEmail($email)
{
$this->email = $email;
}
name, nillable are optionnal.
setter is optional and only available for MethodComplexType.