Code Duplication    Length = 25-30 lines in 2 locations

src/Interceptor/CacheEvictInterceptor.php 1 location

@@ 29-58 (lines=30) @@
26
/**
27
 * Class CacheEvictInterceptor
28
 */
29
class CacheEvictInterceptor extends AbstractCache
30
{
31
    /**
32
     * @param MethodInvocation $invocation
33
     *
34
     * @return mixed
35
     */
36
    public function invoke(MethodInvocation $invocation)
37
    {
38
        $annotation = $invocation->getMethod()->getAnnotation($this->annotation) ?? new $this->annotation([]);
39
        $keys = $this->generateCacheName($annotation->cacheName, $invocation);
40
        if (!is_array($annotation->key)) {
41
            $annotation->key = [$annotation->key];
42
        }
43
        $keys = $this->detectCacheKeys($invocation, $annotation, $keys);
44
45
        // detect use cache driver
46
        $cache = $this->detectCacheRepository($annotation);
47
48
        if ($annotation->allEntries) {
49
            $cache->flush();
50
51
            return $invocation->proceed();
52
        }
53
        $result = $invocation->proceed();
54
        $cache->forget($this->recursiveImplode($this->join, $keys));
55
56
        return $result;
57
    }
58
}
59

src/Interceptor/CachePutInterceptor.php 1 location

@@ 29-53 (lines=25) @@
26
/**
27
 * Class AroundCachePutAspect
28
 */
29
class CachePutInterceptor extends AbstractCache
30
{
31
    /**
32
     * @param MethodInvocation|\Ray\Aop\ReflectiveMethodInvocation $invocation
33
     *
34
     * @return mixed
35
     */
36
    public function invoke(MethodInvocation $invocation)
37
    {
38
        $annotation = $invocation->getMethod()->getAnnotation($this->annotation) ?? new $this->annotation([]);
39
        $keys = $this->generateCacheName($annotation->cacheName, $invocation);
40
        if (!is_array($annotation->key)) {
41
            $annotation->key = [$annotation->key];
42
        }
43
        $keys = $this->detectCacheKeys($invocation, $annotation, $keys);
44
        // detect use cache driver
45
        $cache = $this->detectCacheRepository($annotation);
46
        $result = $invocation->proceed();
47
        if ($result !== null) {
48
            $cache->put($this->recursiveImplode($this->join, $keys), $result, $annotation->lifetime);
49
        }
50
51
        return $result;
52
    }
53
}
54