added initial support for service binding
This commit is contained in:
@ -2,12 +2,12 @@
|
||||
|
||||
namespace Bundle\WebServiceBundle\ServiceDefinition;
|
||||
|
||||
class ServiceHeader
|
||||
class Argument
|
||||
{
|
||||
private $name;
|
||||
private $type;
|
||||
|
||||
public function __construct($name = null, ServiceType $type = null)
|
||||
public function __construct($name = null, Type $type = null)
|
||||
{
|
||||
$this->setName($name);
|
||||
$this->setType($type);
|
35
ServiceDefinition/Header.php
Normal file
35
ServiceDefinition/Header.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace Bundle\WebServiceBundle\ServiceDefinition;
|
||||
|
||||
class Header
|
||||
{
|
||||
private $name;
|
||||
private $type;
|
||||
|
||||
public function __construct($name = null, Type $type = null)
|
||||
{
|
||||
$this->setName($name);
|
||||
$this->setType($type);
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function setName($name)
|
||||
{
|
||||
$this->name = $name;
|
||||
}
|
||||
|
||||
public function getType()
|
||||
{
|
||||
return $this->type;
|
||||
}
|
||||
|
||||
public function setType($type)
|
||||
{
|
||||
$this->type = $type;
|
||||
}
|
||||
}
|
@ -2,13 +2,11 @@
|
||||
|
||||
namespace Bundle\WebServiceBundle\ServiceDefinition\Loader;
|
||||
|
||||
use Bundle\WebServiceBundle\ServiceDefinition\ServiceType;
|
||||
|
||||
use Bundle\WebServiceBundle\ServiceDefinition\ServiceDefinition;
|
||||
|
||||
use Bundle\WebServiceBundle\ServiceDefinition\ServiceMethod;
|
||||
|
||||
use Bundle\WebServiceBundle\ServiceDefinition\ServiceHeader;
|
||||
use Bundle\WebServiceBundle\ServiceDefinition\Header;
|
||||
use Bundle\WebServiceBundle\ServiceDefinition\Method;
|
||||
use Bundle\WebServiceBundle\ServiceDefinition\Argument;
|
||||
use Bundle\WebServiceBundle\ServiceDefinition\Type;
|
||||
|
||||
class XmlFileLoader extends FileLoader
|
||||
{
|
||||
@ -35,11 +33,11 @@ class XmlFileLoader extends FileLoader
|
||||
/**
|
||||
* @param \SimpleXMLElement $node
|
||||
*
|
||||
* @return \Bundle\WebServiceBundle\ServiceDefinition\ServiceHeader
|
||||
* @return \Bundle\WebServiceBundle\ServiceDefinition\Header
|
||||
*/
|
||||
protected function parseHeader(\SimpleXMLElement $node)
|
||||
{
|
||||
$header = new ServiceHeader((string)$node['name'], $this->parseType($node->type));
|
||||
$header = new Header((string)$node['name'], $this->parseType($node->type));
|
||||
|
||||
return $header;
|
||||
}
|
||||
@ -47,11 +45,16 @@ class XmlFileLoader extends FileLoader
|
||||
/**
|
||||
* @param \SimpleXMLElement $node
|
||||
*
|
||||
* @return \Bundle\WebServiceBundle\ServiceDefinition\ServiceMethod
|
||||
* @return \Bundle\WebServiceBundle\ServiceDefinition\Method
|
||||
*/
|
||||
protected function parseMethod(\SimpleXMLElement $node)
|
||||
{
|
||||
$method = new ServiceMethod((string)$node['name'], (string)$node['controller']);
|
||||
$method = new Method((string)$node['name'], (string)$node['controller']);
|
||||
|
||||
foreach($node->argument as $argument)
|
||||
{
|
||||
$method->getArguments()->add($this->parseArgument($argument));
|
||||
}
|
||||
|
||||
return $method;
|
||||
}
|
||||
@ -59,7 +62,19 @@ class XmlFileLoader extends FileLoader
|
||||
/**
|
||||
* @param \SimpleXMLElement $node
|
||||
*
|
||||
* @return \Bundle\WebServiceBundle\ServiceDefinition\ServiceType
|
||||
* @return \Bundle\WebServiceBundle\ServiceDefinition\Argument
|
||||
*/
|
||||
protected function parseArgument(\SimpleXMLElement $node)
|
||||
{
|
||||
$argument = new Argument((string)$node['name'], $this->parseType($node->type));
|
||||
|
||||
return $argument;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \SimpleXMLElement $node
|
||||
*
|
||||
* @return \Bundle\WebServiceBundle\ServiceDefinition\Type
|
||||
*/
|
||||
protected function parseType(\SimpleXMLElement $node)
|
||||
{
|
||||
@ -67,7 +82,7 @@ class XmlFileLoader extends FileLoader
|
||||
$qname = explode(':', $node['xml-type'], 2);
|
||||
$xmlType = sprintf('{%s}%s', $namespaces[$qname[0]], $qname[1]);
|
||||
|
||||
$type = new ServiceType((string)$node['php-type'], $xmlType, (string)$node['converter']);
|
||||
$type = new Type((string)$node['php-type'], $xmlType, (string)$node['converter']);
|
||||
|
||||
return $type;
|
||||
}
|
||||
|
@ -2,15 +2,19 @@
|
||||
|
||||
namespace Bundle\WebServiceBundle\ServiceDefinition;
|
||||
|
||||
class ServiceMethod
|
||||
use Bundle\WebServiceBundle\Util\Collection;
|
||||
|
||||
class Method
|
||||
{
|
||||
private $name;
|
||||
private $controller;
|
||||
private $arguments;
|
||||
|
||||
public function __construct($name = null, $controller = null)
|
||||
public function __construct($name = null, $controller = null, array $arguments = array())
|
||||
{
|
||||
$this->setName($name);
|
||||
$this->setController($controller);
|
||||
$this->setArguments($arguments);
|
||||
}
|
||||
|
||||
public function getName()
|
||||
@ -32,4 +36,15 @@ class ServiceMethod
|
||||
{
|
||||
$this->controller = $controller;
|
||||
}
|
||||
|
||||
public function getArguments()
|
||||
{
|
||||
return $this->arguments;
|
||||
}
|
||||
|
||||
public function setArguments($arguments)
|
||||
{
|
||||
$this->arguments = new Collection('getName');
|
||||
$this->arguments->addAll($arguments);
|
||||
}
|
||||
}
|
@ -2,7 +2,7 @@
|
||||
|
||||
namespace Bundle\WebServiceBundle\ServiceDefinition;
|
||||
|
||||
class ServiceType
|
||||
class Type
|
||||
{
|
||||
private $phpType;
|
||||
private $xmlType;
|
Reference in New Issue
Block a user