class PirateDayCacheContext
Defines the PirateDayCacheContext service that allows to cache the booty.
Cache context ID: 'pirate_day'.
Hierarchy
- class \Drupal\config_override_test\Cache\PirateDayCacheContext implements \Drupal\Core\Cache\Context\CacheContextInterface
 
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 15  
Namespace
Drupal\config_override_test\CacheView 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.