[*] WS : improved performances
This commit is contained in:
@@ -47,6 +47,8 @@ class WebserviceOutputBuilderCore
|
|||||||
protected $virtualFields = array();
|
protected $virtualFields = array();
|
||||||
protected $statusInt;
|
protected $statusInt;
|
||||||
protected $wsParamOverrides;
|
protected $wsParamOverrides;
|
||||||
|
|
||||||
|
protected static $_cache_ws_parameters = array();
|
||||||
|
|
||||||
// Header properties
|
// Header properties
|
||||||
protected $headerParams = array(
|
protected $headerParams = array(
|
||||||
@@ -359,7 +361,11 @@ class WebserviceOutputBuilderCore
|
|||||||
$type_of_view = self::VIEW_DETAILS;
|
$type_of_view = self::VIEW_DETAILS;
|
||||||
}
|
}
|
||||||
|
|
||||||
$ws_params = $objects['empty']->getWebserviceParameters();
|
$class = get_class($objects['empty']);
|
||||||
|
if (!isset(WebserviceOutputBuilder::$_cache_ws_parameters[$class]))
|
||||||
|
WebserviceOutputBuilder::$_cache_ws_parameters[$class] = $objects['empty']->getWebserviceParameters();
|
||||||
|
$ws_params = WebserviceOutputBuilder::$_cache_ws_parameters[$class];
|
||||||
|
|
||||||
foreach ($this->wsParamOverrides AS $p)
|
foreach ($this->wsParamOverrides AS $p)
|
||||||
{
|
{
|
||||||
$object = $p['object'];
|
$object = $p['object'];
|
||||||
@@ -406,7 +412,11 @@ class WebserviceOutputBuilderCore
|
|||||||
*/
|
*/
|
||||||
public function renderEntityMinimum($object, $depth)
|
public function renderEntityMinimum($object, $depth)
|
||||||
{
|
{
|
||||||
$ws_params = $object->getWebserviceParameters();
|
$class = get_class($object);
|
||||||
|
if (!isset(WebserviceOutputBuilder::$_cache_ws_parameters[$class]))
|
||||||
|
WebserviceOutputBuilder::$_cache_ws_parameters[$class] = $object->getWebserviceParameters();
|
||||||
|
$ws_params = WebserviceOutputBuilder::$_cache_ws_parameters[$class];
|
||||||
|
|
||||||
$more_attr['id'] = $object->id;
|
$more_attr['id'] = $object->id;
|
||||||
$more_attr['xlink_resource'] = $this->wsUrl.$ws_params['objectsNodeName'].'/'.$object->id;
|
$more_attr['xlink_resource'] = $this->wsUrl.$ws_params['objectsNodeName'].'/'.$object->id;
|
||||||
$output = $this->setIndent($depth).$this->objectRender->renderNodeHeader($ws_params['objectNodeName'], $ws_params, $more_attr, false);
|
$output = $this->setIndent($depth).$this->objectRender->renderNodeHeader($ws_params['objectNodeName'], $ws_params, $more_attr, false);
|
||||||
@@ -446,7 +456,12 @@ class WebserviceOutputBuilderCore
|
|||||||
public function renderEntity($object, $depth)
|
public function renderEntity($object, $depth)
|
||||||
{
|
{
|
||||||
$output = '';
|
$output = '';
|
||||||
$ws_params = $object->getWebserviceParameters();
|
|
||||||
|
$class = get_class($object);
|
||||||
|
if (!isset(WebserviceOutputBuilder::$_cache_ws_parameters[$class]))
|
||||||
|
WebserviceOutputBuilder::$_cache_ws_parameters[$class] = $object->getWebserviceParameters();
|
||||||
|
$ws_params = WebserviceOutputBuilder::$_cache_ws_parameters[$class];
|
||||||
|
|
||||||
foreach ($this->wsParamOverrides AS $p)
|
foreach ($this->wsParamOverrides AS $p)
|
||||||
{
|
{
|
||||||
$o = $p['object'];
|
$o = $p['object'];
|
||||||
|
|||||||
Reference in New Issue
Block a user