Por lo que entendí, esto es una especie de equivalencia del getCacheTags
método de Magento 1.
Las getIdentities
clases de modelo from se utilizan en cada clase de bloque que hace referencia a este modelo.
Ok, tomemos /Magento/Catalog/Model/Category.php
:
public function getIdentities()
{
$identities = [
self::CACHE_TAG . '_' . $this->getId(),
];
if ($this->hasDataChanges() || $this->isDeleted()) {
$identities[] = Product::CACHE_PRODUCT_CATEGORY_TAG . '_' . $this->getId();
}
return $identities;
}
Este método se hace referencia en /Magento/Catalog/Block/Category/View.php
:
public function getIdentities()
{
return $this->getCurrentCategory()->getIdentities();
}
En M2, ahora debe declarar la etiqueta de caché con el getIdentities
método a nivel de modelo, luego puede usarla en bloques que hagan referencia a esos modelos.
Si marca cada bloque que implementa el getIdentities
método, todos hacen referencia a un getIdentities
método de modelo correspondiente o una etiqueta de caché de modelo correspondiente, como\Magento\Catalog\Model\Product::CACHE_TAG
Luego, esos getIdentities
métodos de bloque se utilizan en Varnish por razones de almacenamiento en caché como lo menciona Matthéo para establecer el X-Magento-Tags
encabezado.
Este encabezado se usa Magento/Framework/App/PageCache/Kernel.php
en el process()
método para guardar el caché:
$tagsHeader = $response->getHeader('X-Magento-Tags');
$tags = $tagsHeader ? explode(',', $tagsHeader->getFieldValue()) : [];
$response->clearHeader('Set-Cookie');
$response->clearHeader('X-Magento-Tags');
if (!headers_sent()) {
header_remove('Set-Cookie');
}
$this->cache->save(serialize($response), $this->identifier->getValue(), $tags, $maxAge);
dev/tests/static/testsuite/Magento/Test/Legacy/_files/obsolete_classes.php
archivo, por lo que tal vez esté destinada a eliminarse más adelante.