/
githubmirror
/
magento2
Обзор
Документация
Войти
/
githubmirror
/
magento2
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
2.4-develop
lib/internal/Magento/Framework/Indexer/ScopeResolver/IndexScopeResolver.php
77 строк
2 KB
Alexandra Zota
ACP2E-4019: CE copyright updates for 2.4.9-beta1
22 окт 2025, 17:47
22 окт 2025, 17:47
1b769b7
Код
Авторство
О чём код?
<?php /** * Copyright 2015 Adobe * All Rights Reserved. */ namespace Magento\Framework\Indexer\ScopeResolver; use Magento\Framework\App\ResourceConnection; use Magento\Framework\App\ScopeResolverInterface; use Magento\Framework\Search\Request\Dimension; use Magento\Framework\Search\Request\IndexScopeResolverInterface; class IndexScopeResolver implements IndexScopeResolverInterface { /** * @var Resource */ private $resource; /** * @var ScopeResolverInterface */ private $scopeResolver; /** * @param ResourceConnection $resource * @param ScopeResolverInterface $scopeResolver */ public function __construct( ResourceConnection $resource, ScopeResolverInterface $scopeResolver ) { $this->resource = $resource; $this->scopeResolver = $scopeResolver; } /** * @param string $index * @param Dimension[] $dimensions * @return string */ public function resolve($index, array $dimensions) { $tableNameParts = []; foreach ($dimensions as $dimension) { switch ($dimension->getName()) { case 'scope': $tableNameParts[$dimension->getName()] = $dimension->getName() . $this->getScopeId($dimension); break; default: $tableNameParts[$dimension->getName()] = $dimension->getName() . $dimension->getValue(); } } ksort($tableNameParts); array_unshift($tableNameParts, $index); return $this->resource->getTableName(implode('_', $tableNameParts)); } /** * Get scope id by code * * @param Dimension $dimension * @return int */ private function getScopeId($dimension) { $scopeId = $dimension->getValue(); if (!is_numeric($scopeId)) { $scopeId = $this->scopeResolver->getScope($scopeId)->getId(); } return $scopeId; } }