Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
PurgeCache.php
Go to the documentation of this file.
1 <?php
7 
9 
11 {
12  const HEADER_X_MAGENTO_TAGS_PATTERN = 'X-Magento-Tags-Pattern';
13 
17  protected $cacheServer;
18 
23 
27  private $logger;
28 
36  public function __construct(
37  \Magento\PageCache\Model\Cache\Server $cacheServer,
38  \Magento\CacheInvalidate\Model\SocketFactory $socketAdapterFactory,
39  InvalidateLogger $logger
40  ) {
41  $this->cacheServer = $cacheServer;
42  $this->socketAdapterFactory = $socketAdapterFactory;
43  $this->logger = $logger;
44  }
45 
53  public function sendPurgeRequest($tagsPattern)
54  {
55  $socketAdapter = $this->socketAdapterFactory->create();
56  $servers = $this->cacheServer->getUris();
57  $headers = [self::HEADER_X_MAGENTO_TAGS_PATTERN => $tagsPattern];
58  $socketAdapter->setOptions(['timeout' => 10]);
59  foreach ($servers as $server) {
60  $headers['Host'] = $server->getHost();
61  try {
62  $socketAdapter->connect($server->getHost(), $server->getPort());
63  $socketAdapter->write(
64  'PURGE',
65  $server,
66  '1.1',
67  $headers
68  );
69  $socketAdapter->read();
70  $socketAdapter->close();
71  } catch (\Exception $e) {
72  $this->logger->critical($e->getMessage(), compact('server', 'tagsPattern'));
73  return false;
74  }
75  }
76 
77  $this->logger->execute(compact('servers', 'tagsPattern'));
78  return true;
79  }
80 }
$logger
__construct(\Magento\PageCache\Model\Cache\Server $cacheServer, \Magento\CacheInvalidate\Model\SocketFactory $socketAdapterFactory, InvalidateLogger $logger)
Definition: PurgeCache.php:36