class PirateDayCacheContext

Same name in other branches
  1. 9 core/modules/config/tests/config_override_test/src/Cache/PirateDayCacheContext.php \Drupal\config_override_test\Cache\PirateDayCacheContext
  2. 8.9.x core/modules/config/tests/config_override_test/src/Cache/PirateDayCacheContext.php \Drupal\config_override_test\Cache\PirateDayCacheContext
  3. 10 core/modules/config/tests/config_override_test/src/Cache/PirateDayCacheContext.php \Drupal\config_override_test\Cache\PirateDayCacheContext

Defines the PirateDayCacheContext service that allows to cache the booty.

Cache context ID: 'pirate_day'.

Hierarchy

Expanded class hierarchy of PirateDayCacheContext

2 files declare their use of PirateDayCacheContext
CacheabilityMetadataConfigOverrideTest.php in core/tests/Drupal/KernelTests/Core/Config/CacheabilityMetadataConfigOverrideTest.php
PirateDayCacheabilityMetadataConfigOverride.php in core/modules/config/tests/config_override_test/src/PirateDayCacheabilityMetadataConfigOverride.php
1 string reference to 'PirateDayCacheContext'
config_override_test.services.yml in core/modules/config/tests/config_override_test/config_override_test.services.yml
core/modules/config/tests/config_override_test/config_override_test.services.yml
1 service uses PirateDayCacheContext
cache_context.pirate_day in core/modules/config/tests/config_override_test/config_override_test.services.yml
Drupal\config_override_test\Cache\PirateDayCacheContext

File

core/modules/config/tests/config_override_test/src/Cache/PirateDayCacheContext.php, line 17

Namespace

Drupal\config_override_test\Cache
View source
class PirateDayCacheContext implements CacheContextInterface {
    
    /**
     * The length of Pirate Day. It lasts 24 hours.
     *
     * This is a simplified test implementation. In a real life Pirate Day module
     * this data wouldn't be defined in a constant, but calculated in a static
     * method. If it were Pirate Day it should return the number of seconds until
     * midnight, and on all other days it should return the number of seconds
     * until the start of the next Pirate Day.
     */
    const PIRATE_DAY_MAX_AGE = 86400;
    
    /**
     * {@inheritdoc}
     */
    public static function getLabel() {
        return t('Pirate day');
    }
    
    /**
     * {@inheritdoc}
     */
    public function getContext() {
        $is_pirate_day = static::isPirateDay() ? 'yarr' : 'nay';
        return "pirate_day." . $is_pirate_day;
    }
    
    /**
     * Returns whether or not it is Pirate Day.
     *
     * To ease testing this is determined with a global variable rather than using
     * the traditional compass and sextant.
     *
     * @return bool
     *   Returns TRUE if it is Pirate Day today.
     */
    public static function isPirateDay() {
        return !empty($GLOBALS['it_is_pirate_day']);
    }
    
    /**
     * {@inheritdoc}
     */
    public function getCacheableMetadata() {
        return new CacheableMetadata();
    }

}

Members

Title Sort descending Modifiers Object type Summary Overriden Title
PirateDayCacheContext::getCacheableMetadata public function Gets the cacheability metadata for the context. Overrides CacheContextInterface::getCacheableMetadata
PirateDayCacheContext::getContext public function Returns the string representation of the cache context. Overrides CacheContextInterface::getContext
PirateDayCacheContext::getLabel public static function Returns the label of the cache context. Overrides CacheContextInterface::getLabel
PirateDayCacheContext::isPirateDay public static function Returns whether or not it is Pirate Day.
PirateDayCacheContext::PIRATE_DAY_MAX_AGE constant The length of Pirate Day. It lasts 24 hours.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.