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'),
|
||
|
);
|
||
|
}
|