[*] WS : improved performances
This commit is contained in:
@@ -47,6 +47,8 @@ class WebserviceOutputBuilderCore
|
||||
protected $virtualFields = array();
|
||||
protected $statusInt;
|
||||
protected $wsParamOverrides;
|
||||
|
||||
protected static $_cache_ws_parameters = array();
|
||||
|
||||
// Header properties
|
||||
protected $headerParams = array(
|
||||
@@ -359,7 +361,11 @@ class WebserviceOutputBuilderCore
|
||||
$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)
|
||||
{
|
||||
$object = $p['object'];
|
||||
@@ -406,7 +412,11 @@ class WebserviceOutputBuilderCore
|
||||
*/
|
||||
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['xlink_resource'] = $this->wsUrl.$ws_params['objectsNodeName'].'/'.$object->id;
|
||||
$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)
|
||||
{
|
||||
$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)
|
||||
{
|
||||
$o = $p['object'];
|
||||
|
||||
Reference in New Issue
Block a user