Por lo que entendí, esto es una especie de equivalencia del getCacheTagsmétodo de Magento 1.
Las getIdentitiesclases 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 getIdentitiesmétodo a nivel de modelo, luego puede usarla en bloques que hagan referencia a esos modelos.
Si marca cada bloque que implementa el getIdentitiesmétodo, todos hacen referencia a un getIdentitiesmétodo de modelo correspondiente o una etiqueta de caché de modelo correspondiente, como\Magento\Catalog\Model\Product::CACHE_TAG
Luego, esos getIdentitiesmétodos de bloque se utilizan en Varnish por razones de almacenamiento en caché como lo menciona Matthéo para establecer el X-Magento-Tagsencabezado.
Este encabezado se usa Magento/Framework/App/PageCache/Kernel.phpen 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.phparchivo, por lo que tal vez esté destinada a eliminarse más adelante.