![]() 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/Search/Dynamic/Algorithm/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\Search\Dynamic\Algorithm; use Magento\Framework\Exception\LocalizedException; use Magento\Framework\ObjectManagerInterface; /** * @api * @since 100.0.2 */ class Repository { /** * @var ObjectManagerInterface */ private $objectManager; /** * @var array */ private $algorithms = []; /** * Construct * * @param ObjectManagerInterface $objectManager * @param array $algorithms */ public function __construct(ObjectManagerInterface $objectManager, array $algorithms) { $this->objectManager = $objectManager; $this->algorithms = $algorithms; } /** * Create algorithm * * @param string $algorithmType * @param array $data * @throws \Magento\Framework\Exception\LocalizedException * @return AlgorithmInterface */ public function get($algorithmType, array $data = []) { if (!isset($this->algorithms[$algorithmType])) { throw new LocalizedException( new \Magento\Framework\Phrase("The %1 value wasn't found in the algorithms.", [$algorithmType]) ); } $className = $this->algorithms[$algorithmType]; $model = $this->objectManager->create($className, $data); if (!$model instanceof AlgorithmInterface) { throw new LocalizedException( new \Magento\Framework\Phrase( '%1 doesn\'t extends \Magento\Framework\Search\Dynamic\Algorithm\AlgorithmInterface', [$className] ) ); } return $model; } }