--- /dev/null
+<?php
+
+namespace Drupal\{{ machine_name }}\Cache\Context;
+
+use Drupal\Core\Cache\CacheableMetadata;
+use Drupal\Core\Cache\Context\{{ interface }};
+{% if base_class %}
+use Drupal\Core\Cache\Context\{{ base_class }};
+{% endif %}
+
+/**
+ * Defines the ExampleCacheContext service.
+ *
+ * Cache context ID: '{{ context_id }}'.
+ *
+ * @DCG
+ * Check out the core/lib/Drupal/Core/Cache/Context directory for examples of
+ * cache contexts provided by Drupal core.
+ */
+class {{ class }} {% if base_class %}extends {{ base_class }} {% endif %}implements {{ interface }} {
+
+ /**
+ * {@inheritdoc}
+ */
+ public static function getLabel() {
+ return t('{{ context_label }}');
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getContext({% if calculated %}$parameter = NULL{% endif %}) {
+ // @DCG: Define the cache context here.
+ $context = 'some_string_value';
+ return $context;
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function getCacheableMetadata({% if calculated %}$parameter = NULL{% endif %}) {
+ return new CacheableMetadata();
+ }
+
+}