【发布时间】:2015-10-01 05:29:53
【问题描述】:
我正在尝试使用中间件缓存整个响应
我遵循的步骤
生成了两个中间件
- AfterCacheMiddleware
- BeforeCacheMiddleware
在 BeforeCacheMiddleware 中:
public function handle($request, Closure $next)
{
$key = $request->url();
if(Cache::has($key)) return Cache::get($key);
return $next($request);
}
在 AfterCacheMiddleware 中
public function handle ($request, Closure $next)
{
$response = $next($request);
$key = $request->url();
if (!Cache::has($key)) Cache::put($key, $response->getContent(), 60);
return $response;
}
kernal.php的$routeMiddleware数组中注册的中间件
'cacheafter' => 'App\Http\Middleware\AfterCacheMiddleware',
'cachebefore' => 'App\Http\Middleware\BeforeCacheMiddleware',
在 routes.php 中,我像这样调用这个虚拟路由
Route::get('middle', ['middleware' => 'cachebefore', 'cacheafter', function()
{
echo "From route";
}]);
问题:
只有 cachebefore 中间件被调用。 cacheafter 根本没有被调用
谁能建议我在这里缺少什么?
【问题讨论】:
标签: php caching laravel-5 middleware