![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/framework/Indexer/ScopeResolver/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ 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; } }