className; $method = $proceedingJoinPoint->methodName; $arguments = $proceedingJoinPoint->arguments['keys']; [$key, $ttl, $group, $annotation] = $this->annotationManager->getCacheableValue($className, $method, $arguments); $driver = $this->manager->getDriver($group); [$has, $result] = $driver->fetch($key); if ($has) { return $result; } $result = $proceedingJoinPoint->process(); if (! in_array($result, (array) $annotation->skipCacheResults, true)) { $driver->set($key, $result, $ttl); if ($driver instanceof KeyCollectorInterface && $annotation instanceof Cacheable && $annotation->collect) { $driver->addKey($annotation->prefix . 'MEMBERS', $key); } } return $result; } }