class crumbs_CallbackRestoration in Crumbs, the Breadcrumbs suite 7.2
Can recover anonymous functions registered with hook_crumbs_plugins() via e.g. $api->routeParentCallback() or $api->entityParentCallback()
On an average request, Crumbs plugins are not defined via hook_crumbs_plugins() but loaded from cache. Since anonymouse function are not serializable, they need to be loaded explicitly by calling the respective implementation of hook_crumbs_plugins().
Hierarchy
- class \crumbs_CallbackRestoration
Expanded class hierarchy of crumbs_CallbackRestoration
File
- lib/
CallbackRestoration.php, line 12
View source
class crumbs_CallbackRestoration {
/**
* @var crumbs_InjectedAPI_Collection_CallbackCollection
*/
private $callbackCollection;
/**
* @var true[]
* Format: $[$module] = true
*/
private $modulesRestored = array();
/**
* @var crumbs_InjectedAPI_hookCrumbsPlugins
*/
private $api;
/**
* Constructor
*/
function __construct() {
$this->callbackCollection = new crumbs_InjectedAPI_Collection_CallbackCollection();
$this->api = new crumbs_InjectedAPI_hookCrumbsPlugins(new crumbs_InjectedAPI_Collection_PluginCollection(), new crumbs_InjectedAPI_Collection_EntityPluginCollection(), $this->callbackCollection, new crumbs_InjectedAPI_Collection_DefaultValueCollection());
}
/**
* @param string $module
* @param string $key
* @param string $callback_type
* E.g. 'routeParent'.
*
* @return callback
*/
function restoreCallback($module, $key, $callback_type) {
if (!isset($this->modulesRestored[$module])) {
$f = $module . '_crumbs_plugins';
// The module may have been disabled in the meantime,
// or the function may have been removed by a developer.
if (function_exists($f)) {
$this->api
->setModule($module);
$f($this->api);
}
$this->modulesRestored[$module] = TRUE;
}
return $this->callbackCollection
->getCallbackOrFalse($module, $callback_type, $key);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
crumbs_CallbackRestoration:: |
private | property | ||
crumbs_CallbackRestoration:: |
private | property | ||
crumbs_CallbackRestoration:: |
private | property | Format: $[$module] = true | |
crumbs_CallbackRestoration:: |
function | |||
crumbs_CallbackRestoration:: |
function | Constructor |