code: public function isActive($name, Context $context)
      {
          $hash = static::CACHE_KEY . '#' . $this->getName() . '#' . md5($name . '-' . $context->serialize());
  
          // Step 1: Try get from memory cache
          if (array_key_exists($hash, $this->memory)) {
              return $this->memory[$hash];
          }
  
          // Step 2: Try get from (optional) cache
          $cacheItem = null;
          if ($this->cachePool !== null) {
              $cacheItem = $this->cachePool->getItem($hash);
  
              if ($cacheItem->isHit()) {
                  $this->memory[$hash] = $cacheItem->get();
                  return $this->memory[$hash];
              }
          }
  
          // Step 3: Get from activators and save to cache
          $this->memory[$hash] = $this->activator->isActive($name, $context);
  
          // Write result to cache
          if ($this->cachePool !== null && $cacheItem !== null) {
              $cacheItem->set($this->memory[$hash]);
              $cacheItem->expiresAfter($this->cacheTtl);
              $this->cachePool->save($cacheItem);
          }
  
          return $this->memory[$hash];
      }
docs: {@inheritdoc}