CachePluginBase
abstract class CachePluginBase extends PluginBase (View source)
The base plugin to handle caching.
Traits
Wrapper methods for \Drupal\Core\StringTranslation\TranslationInterface.
Provides dependency injection friendly methods for serialization.
Provides a trait for the messenger service.
Constants
| DERIVATIVE_SEPARATOR |
A string which is used to separate base plugin IDs from the derivative ID. |
| INCLUDE_NEGOTIATED |
Include negotiated languages when listing languages. |
| INCLUDE_ENTITY |
Include entity row languages when listing languages. |
| VIEWS_QUERY_LANGUAGE_SITE_DEFAULT |
Query string to indicate the site default language. |
Properties
| protected string | $pluginId | The plugin_id. |
from PluginBase |
| protected array | $pluginDefinition | The plugin implementation definition. |
from PluginBase |
| protected array | $configuration | Configuration information passed into the plugin. |
from PluginBase |
| protected TranslationInterface | $stringTranslation | The string translation service. |
from StringTranslationTrait |
| protected array | $_serviceIds | An array of service IDs keyed by property name used for serialization. |
from DependencySerializationTrait |
| protected array | $_entityStorages | An array of entity type IDs keyed by the property name of their storages. |
from DependencySerializationTrait |
| protected MessengerInterface | $messenger | The messenger. |
from MessengerTrait |
| array | $options | Options for this plugin will be held here. |
from PluginBase |
| ViewExecutable | $view | The top object of a view. |
from PluginBase |
| DisplayPluginBase | $displayHandler | The display object this plugin is for. |
from PluginBase |
| array | $definition | Plugins's definition. |
from PluginBase |
| protected bool | $usesOptions | Denotes whether the plugin has an additional options form. |
from PluginBase |
| protected RendererInterface | $renderer | Stores the render API renderer. |
from PluginBase |
| $storage | Contains all data that should be written/read from cache. |
||
| protected string | $resultsBin | Which cache bin to store query results in. |
|
| protected string | $resultsKey | Stores the cache ID used for the results cache. |
Methods
Constructs a PluginBase object.
Translates a string to the current language or to a given language.
Formats a string containing a count of items.
Returns the number of plurals supported by a given language.
Gets the string translation service.
Creates an instance of the plugin.
Initialize the plugin.
Information about options for all kinds of purposes will be held here.
Fills up the options of the plugin with defaults.
Filter out stored options depending on the defined options.
Do the work to filter out stored options depending on the defined options.
Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away.
Provide a form to edit options for this plugin.
Lists the trusted callbacks provided by the implementing class.
Handle any special handling on the validate form.
Provide a full list of possible theme templates used by this style.
Return a string to display as the clickable title for the access control.
Returns a string with any core tokens replaced.
Replaces Views' tokens in a given string. The resulting string will be sanitized with Xss::filterAdmin.
Returns an array of available token replacements.
Adds elements for available core tokens to a form.
Moves form elements into fieldsets for presentation purposes.
Flattens the structure of form elements.
Makes an array of languages, optionally including special languages.
Returns substitutions for Views queries for languages.
Returns the resultsKey property.
Determine the expiration time of the cache type, or NULL if no expire.
Determine cache expiration time.
Save data to the cache.
Retrieve data from the cache.
Clear out cached data for a view.
Post process any rendered data.
Calculates and sets a cache ID used for the result cache.
Gets an array of cache tags for the current view.
Gets the max age for the current view.
Returns the default cache max age.
Prepares the view result before putting it into cache.
Alters the cache metadata of a display upon saving a view.
Details
__construct(array $configuration, string $plugin_id, mixed $plugin_definition)
Constructs a PluginBase object.
string
getPluginId()
Gets the plugin_id of the plugin instance.
string
getBaseId()
Gets the base_plugin_id of the plugin instance.
string|null
getDerivativeId()
Gets the derivative_id of the plugin instance.
array
getPluginDefinition()
Gets the definition of the plugin implementation.
bool
isConfigurable()
Determines if the plugin is configurable.
protected TranslatableMarkup
t(string $string, array $args = [], array $options = [])
Translates a string to the current language or to a given language.
See \Drupal\Core\StringTranslation\TranslatableMarkup::__construct() for important security information and usage guidelines.
In order for strings to be localized, make them available in one of the ways supported by the
protected
formatPlural($count, $singular, $plural, array $args = [], array $options = [])
Formats a string containing a count of items.
protected
getNumberOfPlurals($langcode = NULL)
Returns the number of plurals supported by a given language.
protected TranslationInterface
getStringTranslation()
Gets the string translation service.
$this
setStringTranslation(TranslationInterface $translation)
Sets the string translation service to use.
__sleep()
{@inheritdoc}
__wakeup()
{@inheritdoc}
setMessenger(MessengerInterface $messenger)
Sets the messenger.
MessengerInterface
messenger()
Gets the messenger.
static ContainerFactoryPluginInterface
create(ContainerInterface $container, array $configuration, string $plugin_id, mixed $plugin_definition)
Creates an instance of the plugin.
init(ViewExecutable $view, DisplayPluginBase $display, array $options = NULL)
Initialize the plugin.
protected array
defineOptions()
Information about options for all kinds of purposes will be held here.
protected
setOptionDefaults(array $storage, array $options)
Fills up the options of the plugin with defaults.
filterByDefinedOptions(array $storage)
Filter out stored options depending on the defined options.
protected
doFilterByDefinedOptions(array $storage, array $options)
Do the work to filter out stored options depending on the defined options.
unpackOptions($storage, $options, $definition = NULL, $all = TRUE, $check = TRUE)
Unpack options over our existing defaults, drilling down into arrays so that defaults don't get totally blown away.
destroy()
Clears a plugin.
buildOptionsForm($form, FormStateInterface $form_state)
Provide a form to edit options for this plugin.
static string[]
trustedCallbacks()
Lists the trusted callbacks provided by the implementing class.
Trusted callbacks are public methods on the implementing class and can be invoked via \Drupal\Core\Security\DoTrustedCallbackTrait::doTrustedCallback().
validateOptionsForm($form, FormStateInterface $form_state)
Validate the options form.
submitOptionsForm($form, FormStateInterface $form_state)
Handle any special handling on the validate form.
query()
Add anything to the query that we might need to.
themeFunctions()
Provide a full list of possible theme templates used by this style.
An
validate()
Validate that the plugin is correct and can be saved.
summaryTitle()
Return a string to display as the clickable title for the access control.
pluginTitle()
Return the human readable name of the display.
This appears on the ui beside each plugin and beside the settings link.
usesOptions()
Returns the usesOptions property.
string
globalTokenReplace(string $string = '', array $options = [])
Returns a string with any core tokens replaced.
protected string
viewsTokenReplace($text, $tokens)
Replaces Views' tokens in a given string. The resulting string will be sanitized with Xss::filterAdmin.
array
getAvailableGlobalTokens(bool $prepared = FALSE, array $types = [])
Returns an array of available token replacements.
globalTokenForm(array $form, FormStateInterface $form_state)
Adds elements for available core tokens to a form.
static array
preRenderAddFieldsetMarkup(array $form)
Moves form elements into fieldsets for presentation purposes.
Many views forms use #tree = TRUE to keep their values in a hierarchy for easier storage. Moving the form elements into fieldsets during form building would break up that hierarchy. Therefore, we wait until the pre_render stage, where any changes we make affect presentation only and aren't reflected in $form_state->getValues().
static array
preRenderFlattenData(array $form)
Flattens the structure of form elements.
If a form element has #flatten = TRUE, then all of its children get moved to the same level as the element itself. So $form['to_be_flattened'][$key] becomes $form[$key], and $form['to_be_flattened'] gets unset.
array
calculateDependencies()
Calculates dependencies for the configured plugin.
Dependencies are saved in the plugin's configuration entity and are used to determine configuration synchronization order. For example, if the plugin integrates with specific user roles, this method should return an array of dependencies listing the specified roles.
string
getProvider()
Returns the plugin provider.
protected array
listLanguages(int $flags = LanguageInterface::STATE_ALL, array $current_values = NULL)
Makes an array of languages, optionally including special languages.
static array
queryLanguageSubstitutions()
Returns substitutions for Views queries for languages.
This is needed so that the language options returned by PluginBase::listLanguages() are able to be used in queries. It is called by the Views module implementation of hook_views_query_substitutions() to get the language-related substitutions.
protected RendererInterface
getRenderer()
Returns the render API renderer.
string
getResultsKey()
Returns the resultsKey property.
protected
cacheExpire($type)
Determine the expiration time of the cache type, or NULL if no expire.
Plugins must override this to implement expiration.
protected
cacheSetMaxAge(string $type)
Determine cache expiration time.
Plugins must override this to implement expiration in the cache table. The default is CACHE_PERMANENT, indicating that the item will not be removed automatically from cache.
cacheSet($type)
Save data to the cache.
A plugin should override this to provide specialized caching behavior.
bool
cacheGet($type)
Retrieve data from the cache.
A plugin should override this to provide specialized caching behavior.
cacheFlush()
Clear out cached data for a view.
postRender($output)
Post process any rendered data.
This can be valuable to be able to cache a view and still have some level of dynamic output. In an ideal world, the actual output will include HTML comment based tokens, and then the post process can replace those tokens.
Example usage. If it is known that the view is a node view and that the primary field will be a nid, you can do something like this:
string
generateResultsKey()
Calculates and sets a cache ID used for the result cache.
string[]
getCacheTags()
Gets an array of cache tags for the current view.
int
getCacheMaxAge()
Gets the max age for the current view.
protected
getDefaultCacheMaxAge()
Returns the default cache max age.
protected ResultRow[]
prepareViewResult(array $result)
Prepares the view result before putting it into cache.
alterCacheMetadata(CacheableMetadata $cache_metadata)
Alters the cache metadata of a display upon saving a view.
string[]
getRowCacheTags(ResultRow $row)
Returns the row cache tags.
string[]
getRowCacheKeys(ResultRow $row)
Returns the row cache keys.
string
getRowId(ResultRow $row)
Returns a unique identifier for the specified row.