![]() 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/View/Design/Fallback/Rule/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\View\Design\Fallback\Rule; use InvalidArgumentException; /** * Class with simple substitution parameters to values */ class Simple implements RuleInterface { /** * Optional params for rule * * @var array */ protected $optionalParams; /** * Pattern for a simple rule * * @var string */ protected $pattern; /** * Constructor * * @param string $pattern * @param array $optionalParams */ public function __construct( $pattern, array $optionalParams = [] ) { $this->pattern = $pattern; $this->optionalParams = $optionalParams; } /** * Get ordered list of folders to search for a file * * @param array $params array of parameters * @return array folders to perform a search * @throws InvalidArgumentException */ public function getPatternDirs(array $params) { $pattern = $this->pattern ?? ''; if (preg_match_all('/<([a-zA-Z\_]+)>/', $pattern, $matches)) { foreach ($matches[1] as $placeholder) { if (empty($params[$placeholder])) { if (in_array($placeholder, $this->optionalParams)) { return []; } else { throw new InvalidArgumentException("Required parameter '{$placeholder}' was not passed"); } } $pattern = str_replace('<' . $placeholder . '>', $params[$placeholder], $pattern); } } return [$pattern]; } }