[SoapClient] Added Classmap
This commit is contained in:
parent
7be719ffc5
commit
29a388eb7d
|
@ -13,6 +13,7 @@
|
||||||
namespace BeSimple\SoapClient;
|
namespace BeSimple\SoapClient;
|
||||||
|
|
||||||
use BeSimple\SoapCommon\Cache;
|
use BeSimple\SoapCommon\Cache;
|
||||||
|
use BeSimple\SoapCommon\Classmap;
|
||||||
use BeSimple\SoapCommon\Converter\TypeConverterCollection;
|
use BeSimple\SoapCommon\Converter\TypeConverterCollection;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -21,6 +22,7 @@ use BeSimple\SoapCommon\Converter\TypeConverterCollection;
|
||||||
class SoapClient
|
class SoapClient
|
||||||
{
|
{
|
||||||
protected $wsdl;
|
protected $wsdl;
|
||||||
|
protected $classmap;
|
||||||
protected $converters;
|
protected $converters;
|
||||||
protected $soapClient;
|
protected $soapClient;
|
||||||
|
|
||||||
|
@ -28,9 +30,10 @@ class SoapClient
|
||||||
* @param string $wsdl
|
* @param string $wsdl
|
||||||
* @param array $options
|
* @param array $options
|
||||||
*/
|
*/
|
||||||
public function __construct($wsdl, array $options = array(), TypeConverterCollection $converters = null)
|
public function __construct($wsdl, array $options = array(), Classmap $classmap = null, TypeConverterCollection $converters = null)
|
||||||
{
|
{
|
||||||
$this->wsdl = $wsdl;
|
$this->wsdl = $wsdl;
|
||||||
|
$this->classmap = $classmap;
|
||||||
$this->converters = $converters;
|
$this->converters = $converters;
|
||||||
|
|
||||||
$this->setOptions($options);
|
$this->setOptions($options);
|
||||||
|
@ -163,10 +166,23 @@ class SoapClient
|
||||||
return array(
|
return array(
|
||||||
'cache_wsdl' => $this->options['cache_type'],
|
'cache_wsdl' => $this->options['cache_type'],
|
||||||
'trace' => $this->options['debug'],
|
'trace' => $this->options['debug'],
|
||||||
|
'classmap' => $this->getClassmap(),
|
||||||
'typemap' => $this->getTypemap(),
|
'typemap' => $this->getTypemap(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
protected function getClassmap()
|
||||||
|
{
|
||||||
|
if (!$this->classmap) {
|
||||||
|
return array();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->classmap->all();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -13,6 +13,7 @@
|
||||||
namespace BeSimple\Tests\SoapClient;
|
namespace BeSimple\Tests\SoapClient;
|
||||||
|
|
||||||
use BeSimple\SoapCommon\Cache;
|
use BeSimple\SoapCommon\Cache;
|
||||||
|
use BeSimple\SoapCommon\Classmap;
|
||||||
use BeSimple\SoapCommon\Converter\DateTimeTypeConverter;
|
use BeSimple\SoapCommon\Converter\DateTimeTypeConverter;
|
||||||
use BeSimple\SoapCommon\Converter\DateTypeConverter;
|
use BeSimple\SoapCommon\Converter\DateTypeConverter;
|
||||||
use BeSimple\SoapCommon\Converter\TypeConverterCollection;
|
use BeSimple\SoapCommon\Converter\TypeConverterCollection;
|
||||||
|
@ -88,10 +89,29 @@ class SoapClientTest extends \PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
Cache::setType(Cache::TYPE_MEMORY);
|
Cache::setType(Cache::TYPE_MEMORY);
|
||||||
$soapClient = new SoapClient('foo.wsdl', array('debug' => true));
|
$soapClient = new SoapClient('foo.wsdl', array('debug' => true));
|
||||||
$this->assertEquals(array('cache_wsdl' => Cache::getType(), 'trace' => true, 'typemap' => array()), $soapClient->getSoapOptions());
|
$this->assertEquals(array('cache_wsdl' => Cache::getType(), 'trace' => true, 'classmap' => array(), 'typemap' => array()), $soapClient->getSoapOptions());
|
||||||
|
|
||||||
$soapClient = new SoapClient('foo.wsdl', array('debug' => false, 'cache_type' => Cache::TYPE_NONE));
|
$soapClient = new SoapClient('foo.wsdl', array('debug' => false, 'cache_type' => Cache::TYPE_NONE));
|
||||||
$this->assertEquals(array('cache_wsdl' => Cache::TYPE_NONE, 'trace' => false, 'typemap' => array()), $soapClient->getSoapOptions());
|
$this->assertEquals(array('cache_wsdl' => Cache::TYPE_NONE, 'trace' => false, 'classmap' => array(), 'typemap' => array()), $soapClient->getSoapOptions());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testGetSoapOptionsWithClassmap()
|
||||||
|
{
|
||||||
|
$classmap = new Classmap();
|
||||||
|
|
||||||
|
$soapClient = new SoapClient('foo.wsdl', array(), $classmap);
|
||||||
|
$soapOptions = $soapClient->getSoapOptions();
|
||||||
|
|
||||||
|
$this->assertSame(array(), $soapOptions['classmap']);
|
||||||
|
|
||||||
|
$map = array(
|
||||||
|
'foobar' => 'BeSimple\SoapClient\SoapClient',
|
||||||
|
'barfoo' => 'BeSimple\SoapClient\Tests\SoapClientTest',
|
||||||
|
);
|
||||||
|
$classmap->set($map);
|
||||||
|
$soapOptions = $soapClient->getSoapOptions();
|
||||||
|
|
||||||
|
$this->assertSame($map, $soapOptions['classmap']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testGetSoapOptionsWithTypemap()
|
public function testGetSoapOptionsWithTypemap()
|
||||||
|
@ -104,7 +124,7 @@ class SoapClientTest extends \PHPUnit_Framework_TestCase
|
||||||
$dateTypeConverter = new DateTypeConverter();
|
$dateTypeConverter = new DateTypeConverter();
|
||||||
$converters->add($dateTypeConverter);
|
$converters->add($dateTypeConverter);
|
||||||
|
|
||||||
$soapClient = new SoapClient('foo.wsdl', array(), $converters);
|
$soapClient = new SoapClient('foo.wsdl', array(), null, $converters);
|
||||||
$soapOptions = $soapClient->getSoapOptions();
|
$soapOptions = $soapClient->getSoapOptions();
|
||||||
|
|
||||||
$this->assertEquals('http://www.w3.org/2001/XMLSchema', $soapOptions['typemap'][0]['type_ns']);
|
$this->assertEquals('http://www.w3.org/2001/XMLSchema', $soapOptions['typemap'][0]['type_ns']);
|
||||||
|
|
Loading…
Reference in New Issue