<?php declare(strict_types=1);
class VarnishPurger extends Extension
{
private function curl_purge($path)
// waiting for curl timeout adds ~5 minutes to unit tests
if (defined("UNITTEST")) {
return;
}
$url = make_http(make_link($path));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PURGE");
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
//return $result;
public function onCommentPosting(CommentPostingEvent $event)
$this->curl_purge("post/view/{$event->image_id}");
public function onImageInfoSet(ImageInfoSetEvent $event)
$this->curl_purge("post/view/{$event->image->id}");
public function onImageDeletion(ImageDeletionEvent $event)
public function get_priority(): int
return 99;