100 lines
3.2 KiB
ReStructuredText
100 lines
3.2 KiB
ReStructuredText
Associative Array
|
|
=================
|
|
|
|
Pre-existent Type
|
|
-----------------
|
|
|
|
+------------------------------------------------+-----------------+
|
|
| Php Type | Value Type |
|
|
+================================================+=================+
|
|
| BeSimple\\SoapCommon\\Type\\KeyValue\\String | String |
|
|
+------------------------------------------------+-----------------+
|
|
| BeSimple\\SoapCommon\\Type\\KeyValue\\Boolean | Boolean |
|
|
+------------------------------------------------+-----------------+
|
|
| BeSimple\\SoapCommon\\Type\\KeyValue\\Int | Int |
|
|
+------------------------------------------------+-----------------+
|
|
| BeSimple\\SoapCommon\\Type\\KeyValue\\Float | Float |
|
|
+------------------------------------------------+-----------------+
|
|
| BeSimple\\SoapCommon\\Type\\KeyValue\\Date | DateTime object |
|
|
+------------------------------------------------+-----------------+
|
|
| BeSimple\\SoapCommon\\Type\\KeyValue\\DateTime | DateTime object |
|
|
+------------------------------------------------+-----------------+
|
|
|
|
Controller
|
|
----------
|
|
|
|
.. code-block:: php
|
|
|
|
namespace Acme\DemoBundle\Controller;
|
|
|
|
use BeSimple\SoapBundle\ServiceDefinition\Annotation as Soap;
|
|
use Symfony\Component\DependencyInjection\ContainerAware;
|
|
|
|
class DemoController extends ContainerAware
|
|
{
|
|
/**
|
|
* @Soap\Method("returnAssocArray")
|
|
* @Soap\Result(phpType = "BeSimple\SoapCommon\Type\KeyValue\String[]")
|
|
*/
|
|
public function assocArrayOfStringAction()
|
|
{
|
|
return array(
|
|
'foo' => 'bar',
|
|
'bar' => 'foo',
|
|
);
|
|
}
|
|
|
|
/**
|
|
* @Soap\Method("sendAssocArray")
|
|
* @Soap\Param("assocArray", phpType = "BeSimple\SoapCommon\Type\KeyValue\String[]")
|
|
* @Soap\Return(phpType = "BeSimple\SoapCommon\Type\KeyValue\String[]")
|
|
*/
|
|
public function assocArrayOfStringAction(array $assocArray)
|
|
{
|
|
// The $assocArray it's a real associative array
|
|
// var_dump($assocArray);die;
|
|
|
|
return $assocArray;
|
|
}
|
|
}
|
|
|
|
How to create my Associative Array?
|
|
-----------------------------------
|
|
|
|
.. code-block:: php
|
|
|
|
namespace Acme\DemoBundle\Soap\Type;
|
|
|
|
use BeSimple\SoapBundle\ServiceDefinition\Annotation as Soap;
|
|
use BeSimple\SoapCommon\Type\AbstractKeyValue;
|
|
|
|
class User extends AbstractKeyValue
|
|
{
|
|
/**
|
|
* @Soap\ComplexType("Acme\DemoBundle\Entity\User")
|
|
*/
|
|
protected $value;
|
|
}
|
|
|
|
.. code-block:: php
|
|
|
|
namespace Acme\DemoBundle\Controller;
|
|
|
|
use Acme\DemoBundle\Entity\User;
|
|
use BeSimple\SoapBundle\ServiceDefinition\Annotation as Soap;
|
|
use Symfony\Component\DependencyInjection\ContainerAware;
|
|
|
|
class DemoController extends ContainerAware
|
|
{
|
|
/**
|
|
* @Soap\Method("getUsers")
|
|
* @Soap\Result(phpType = "Acme\DemoBundle\Soap\Type\User[]")
|
|
*/
|
|
public function getUsers()
|
|
{
|
|
return array(
|
|
'user1' => new User('user1', 'user1@user.com'),
|
|
'user2' => new User('user2', 'user2@user.com'),
|
|
);
|
|
}
|