mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 17:27:36 +00:00
- change graphql dispatch to not cause boc - fixing tests - implementing url resolver cache - removing cahceTag annotation
45 lines
1.1 KiB
PHP
45 lines
1.1 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
declare(strict_types=1);
|
|
|
|
namespace Magento\CmsGraphQl\Model\Resolver\Block;
|
|
|
|
use Magento\Cms\Api\Data\BlockInterface;
|
|
use Magento\Framework\GraphQl\Query\Resolver\IdentityInterface;
|
|
|
|
/**
|
|
* Identity for resolved CMS block
|
|
*/
|
|
class Identity implements IdentityInterface
|
|
{
|
|
/** @var string */
|
|
private $cacheTag = \Magento\Cms\Model\Block::CACHE_TAG;
|
|
|
|
/**
|
|
* Get block identities from resolved data
|
|
*
|
|
* @param array $resolvedData
|
|
* @return string[]
|
|
*/
|
|
public function getIdentities(array $resolvedData): array
|
|
{
|
|
$ids = [];
|
|
$items = $resolvedData['items'] ?? [];
|
|
foreach ($items as $item) {
|
|
if (is_array($item) && !empty($item[BlockInterface::BLOCK_ID])) {
|
|
$ids[] = sprintf('%s_%s', $this->cacheTag, $item[BlockInterface::BLOCK_ID]);
|
|
$ids[] = sprintf('%s_%s', $this->cacheTag, $item[BlockInterface::IDENTIFIER]);
|
|
}
|
|
}
|
|
|
|
if (!empty($ids)) {
|
|
array_unshift($ids, $this->cacheTag);
|
|
}
|
|
|
|
return $ids;
|
|
}
|
|
}
|