$context]; * @endcode * * On the other hand, there are cases, on which providers no longer are * possible to provide context objects, even without the value, so the caller * should not expect it. * * @param string[] $unqualified_context_ids * The requested context IDs. The context provider must only return contexts * for those IDs. * * @return \Drupal\Core\Plugin\Context\ContextInterface[] * The determined available contexts, keyed by the unqualified context_id. * * @see \Drupal\Core\Plugin\Context\ContextProviderInterface:getAvailableContexts() */ public function getRuntimeContexts(array $unqualified_context_ids); /** * Gets all available contexts for the purposes of configuration. * * When a context aware plugin is being configured, the configuration UI must * know which named contexts are potentially available, but does not care * about the value, since the value can be different for each request, and * might not be available at all during the configuration UI's request. * * For example: * @code * // During configuration, there is no specific node to pass as context. * // However, inform the system that a context named 'node' is * // available, and provide its definition, so that context aware plugins * // can be configured to use it. When the plugin, for example a block, * // needs to evaluate the context, the value of this context will be * // supplied by getRuntimeContexts(). * $context = EntityContext::fromEntityTypeId('node'); * return ['node' => $context]; * @endcode * * @return \Drupal\Core\Plugin\Context\ContextInterface[] * All available contexts keyed by the unqualified context ID. * * @see \Drupal\Core\Plugin\Context\ContextProviderInterface::getRuntimeContext() */ public function getAvailableContexts(); }