我想使 symfony2 中的 HTTP 缓存失效。我使用以下方法:
protected function invalidateCache($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PURGE');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $status == 200;
}
这行得通,没问题。但是当我使用 ESI 时,包括我的 controller() 函数(不是 path()),例如:
{{ render_esi(controller('AcmeDemoBundle:Default:index')) }}
如何获取控制器函数生成的 url?或者我怎样才能使该 esi 请求的缓存响应无效?