$cacheBool1 =
$this->_specificOptions
['cache_by_default'
];
$cacheBool2 =
in_array($name,
$this->_specificOptions
['cached_functions'
]);
$cacheBool3 =
in_array($name,
$this->_specificOptions
['non_cached_functions'
]);
$cache =
(($cacheBool1 ||
$cacheBool2) && (!
$cacheBool3));
if (!
$cache) { // Caching of this callback is disabled
return call_user_func_array($callback,
$parameters);
} $id =
$this->
_makeId($callback,
$parameters);
if ( ($rs =
$this->
load($id)) &&
isset($rs[0
],
$rs[1
])) { // A cache is available
$output =
$rs[0
];
$return =
$rs[1
];
} else { // A cache is not available (or not valid for this frontend)
ob_start();
ob_implicit_flush(false
);
$return =
call_user_func_array($callback,
$parameters);
$output =
ob_get_clean();
$data = array
($output,
$return);