Skip to content
Open
27 changes: 27 additions & 0 deletions Model/Api.php
Original file line number Diff line number Diff line change
Expand Up @@ -215,8 +215,19 @@ public function cleanBySurrogateKey($keys)
}

foreach ($collection as $keys) {
$serializedTags = json_encode($keys);
if (preg_match('/(cpg|cms_page)/i', $serializedTags) !== false) {
\Magento\Framework\Debugger::getInstance()->enable();
\Magento\Framework\Debugger::getInstance()->log(__METHOD__, [
'keys' => $keys,
'result' => $result,
'payload' => $payload
]);
}

$payload = json_encode(['surrogate_keys' => $keys]);
$result = $this->_purge($uri, null, Request::METHOD_POST, $payload);

if ($result['status']) {
foreach ($keys as $key) {
$this->logger->execute('surrogate key: ' . $key);
Expand All @@ -241,6 +252,8 @@ public function cleanBySurrogateKey($keys)
}
}

\Magento\Framework\Debugger::getInstance()->disable();

return $result['status'];
}

Expand Down Expand Up @@ -334,6 +347,15 @@ private function _purge($uri, $type, $method = Request::METHOD_POST, $payload =
$responseCode = $response->getStatusCode();
$responseMessage = $response->getReasonPhrase();

\Magento\Framework\Debugger::getInstance()->log(__METHOD__, [
'payload' => $payload,
'method' => $method,
'responseCode' => $responseCode,
'responseMessage' => $responseMessage,
'headers' => $headers->toArray(),
'uri' => $uri
]);

// check response
if ($responseCode == '429') {
throw new LocalizedException(__($responseMessage));
Expand All @@ -344,6 +366,11 @@ private function _purge($uri, $type, $method = Request::METHOD_POST, $payload =
$this->logger->critical($e->getMessage(), $uri);
$result['status'] = false;
$result['msg'] = $e->getMessage();

\Magento\Framework\Debugger::getInstance()->log(__METHOD__, [
'result' => $result
]);
\Magento\Framework\Debugger::getInstance()->disable();
}

if (empty($type)) {
Expand Down
9 changes: 9 additions & 0 deletions Model/PurgeCache.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,11 @@ public function __construct(Api $api, Config $config)
*/
public function sendPurgeRequest($pattern = '')
{
$serializedTags = json_encode($pattern);
if (preg_match('/(cpg|cms_page)/i', $serializedTags) !== false) {
\Magento\Framework\Debugger::getInstance()->enable();
}

if (empty($pattern)) {
if ($this->config->canPreserveStatic()) {
$result = $this->api->cleanBySurrogateKey(['text']);
Expand All @@ -65,6 +70,10 @@ public function sendPurgeRequest($pattern = '')
$result = $this->api->cleanUrl($pattern);
} elseif (is_array($pattern)) {
$result = $this->api->cleanBySurrogateKey($pattern);
\Magento\Framework\Debugger::getInstance()->log(__METHOD__, [
'pattern' => $pattern,
'result' => $result
]);
} else {
return false;
}
Expand Down
15 changes: 15 additions & 0 deletions Observer/InvalidateVarnishObserver.php
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,18 @@ public function execute(\Magento\Framework\Event\Observer $observer): void

if ($object instanceof \Magento\Framework\DataObject\IdentityInterface && $this->canPurgeObject($object)) {
$tags = [];

$identities = json_encode($object->getIdentities());
if (preg_match('/(cpg|cms_page)/i', $identities) !== false) {
\Magento\Framework\Debugger::getInstance()->enable();
}

foreach ($object->getIdentities() as $tag) {
if (!is_string($tag)) {
\Magento\Framework\Debugger::getInstance()->log(__METHOD__, ['tag_is_array' => $tag]);
continue;
}

$tag = $this->cacheTags->convertCacheTags($tag);
if (!in_array($tag, $this->alreadyPurged)) {
$tags[] = $tag;
Expand All @@ -90,7 +98,14 @@ public function execute(\Magento\Framework\Event\Observer $observer): void
if (!empty($tags)) {
$this->purgeCache->sendPurgeRequest(array_unique($tags));
}

\Magento\Framework\Debugger::getInstance()->log(__METHOD__, [
'tags' => $tags,
'already_purged' => $this->alreadyPurged
]);
}

\Magento\Framework\Debugger::getInstance()->disable();
}
}

Expand Down