Skip to content

Commit d684412

Browse files
committed
fix: refactor Request scope cache feature
remove unncesary middleware
1 parent abbde7c commit d684412

File tree

4 files changed

+9
-93
lines changed

4 files changed

+9
-93
lines changed

app/Http/Kernel.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ class Kernel extends HttpKernel
3939
\App\Http\Middleware\SecurityHTTPHeadersWriterMiddleware::class,
4040
\App\Http\Middleware\ParseMultipartFormDataInputForNonPostRequests::class,
4141
\App\Http\Middleware\DoctrineMiddleware::class,
42-
\App\Http\Middleware\RequestScopedCacheMiddleware::class,
4342
];
4443

4544
/**

app/Http/Middleware/RequestScopedCacheMiddleware.php

Lines changed: 0 additions & 50 deletions
This file was deleted.

app/ModelSerializers/Traits/RequestScopedCache.php

Lines changed: 8 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
trait RequestScopedCache
2525
{
2626

27+
static function store(){
28+
return Cache::store(config('cache.request_scope_cache_store', 'array'));
29+
}
2730
/**
2831
* @return string
2932
*/
@@ -36,34 +39,12 @@ static function getScopeId():string{
3639
$time = time();
3740
$sessionId = Session::getId();
3841
$uuid = Uuid::uuid4()->toString();
39-
/*Log::debug
40-
(
41-
sprintf
42-
(
43-
"RequestScopedCache::getScopeId scope is empty ip %s time %s sessionId %s uuid%s .",
44-
$ip , $time, $sessionId, $uuid
45-
)
46-
);*/
47-
4842
$requestId = md5(sprintf("%s.%s.%s.%s", $ip, $time, $sessionId, $uuid));
49-
50-
/*Log::debug
51-
(
52-
sprintf
53-
(
54-
"RequestScopedCache::getScopeId setting request id %s.",
55-
$requestId
56-
)
57-
);*/
58-
5943
$request->headers->set('X-Request-ID', $requestId);
60-
6144
$_SERVER['HTTP_X_REQUEST_ID'] = $requestId;
6245

6346
}
6447

65-
//Log::debug(sprintf("RequestScopedCache::getScopeId retrieving request id %s" , $requestId));
66-
6748
return $requestId;
6849
}
6950

@@ -86,23 +67,9 @@ function getRequestKey(string $serializeName, int $id, ?string $expand = null, a
8667
* @return mixed
8768
*/
8869
function cache(string $key, Closure $callback){
89-
90-
$scope = self::getScopeId();
91-
92-
//Log::debug(sprintf("RequestScopedCache::cache scope %s key %s.", $scope, $key));
93-
94-
$res = Cache::tags($scope)->get($key);
95-
if(!empty($res)){
96-
$json_res = gzinflate($res);
97-
$res = json_decode($json_res,true);
98-
//Log::debug(sprintf("RequestScopedCache::cache scope %s key %s cache hit res %s.", $scope, $key, $json_res));
99-
return $res;
100-
}
101-
102-
$res = $callback();
103-
$json = json_encode($res);
104-
//Log::debug(sprintf("RequestScopedCache::cache scope %s key %s res %s adding to cache.", $scope, $key, $json));
105-
Cache::tags($scope)->add($key, gzdeflate($json, 9));
106-
return $res;
70+
self::store()->rememberForever($key, fn() => $callback());
71+
$key = self::getScopeId().':'.$key;
72+
// 30s TTL is plenty for same-request reuse and self-cleanup
73+
return self::store()->remember($key, now()->addSeconds(30), $callback);
10774
}
108-
}
75+
}

config/cache.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,5 +83,5 @@
8383
*/
8484

8585
'prefix' => 'laravel',
86-
86+
'request_scope_cache_store' => env('REQUEST_SCOPE_CACHE_STORE', 'array'),
8787
];

0 commit comments

Comments
 (0)