class UserRolesCacheContext extends UserCacheContextBase implements CalculatedCacheContextInterface (View source)

Defines the UserRolesCacheContext service, for "per role" caching.

Only use this cache context when checking explicitly for certain roles. Use user.permissions for anything that checks permissions.

Cache context ID: 'user.roles' (to vary by all roles of the current user). Calculated cache context ID: 'user.roles:%role', e.g. 'user.roles:anonymous' (to vary by the presence/absence of a specific role).

Properties

protected AccountInterface $user

The account object.

from  UserCacheContextBase

Methods

__construct(AccountInterface $user)

Constructs a new UserCacheContextBase class.

static string
getLabel()

Returns the label of the cache context.

string
getContext($role = NULL)

Returns the string representation of the cache context.

getCacheableMetadata($role = NULL)

Gets the cacheability metadata for the context based on the parameter value.

Details

__construct(AccountInterface $user)

Constructs a new UserCacheContextBase class.

Parameters

AccountInterface $user

The current user.

static string getLabel()

Returns the label of the cache context.

Return Value

string

The label of the cache context.

string getContext($role = NULL)

Returns the string representation of the cache context.

A cache context service's name is used as a token (placeholder) cache key, and is then replaced with the string returned by this method.

Parameters

$role

Return Value

string

The string representation of the cache context. When $parameter is NULL, a value representing all possible parameters must be generated.

Exceptions

LogicException

CacheableMetadata getCacheableMetadata($role = NULL)

Gets the cacheability metadata for the context based on the parameter value.

There are three valid cases for the returned CacheableMetadata object:

  • An empty object means this can be optimized away safely.
  • A max-age of 0 means that this context can never be optimized away. It will never bubble up and cache tags will not be used.
  • Any non-zero max-age and cache tags will bubble up into the cache item if this is optimized away to allow for invalidation if the context value changes.

Parameters

$role

Return Value

CacheableMetadata

A cacheable metadata object.

Exceptions

LogicException