![]() 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/Asset/NotationResolver/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\View\Asset\NotationResolver; use Magento\Framework\View\Asset; /** * Variable resolver to allow specific placeholders in CSS files */ class Variable { /** * Regex matching {{placeholders}} */ public const VAR_REGEX = '/{{([_a-z]*)}}/si'; /** * Provides the combined base url and base path from the asset context */ public const VAR_BASE_URL_PATH = 'base_url_path'; /** * @var \Magento\Framework\View\Asset\Repository */ private $assetRepo; /** * @param Asset\Repository $assetRepo */ public function __construct(Asset\Repository $assetRepo) { $this->assetRepo = $assetRepo; } /** * Replaces the placeholder variables into the given path * * @param string $path * @return string */ public function convertVariableNotation($path) { $matches = []; if (preg_match_all(self::VAR_REGEX, $path, $matches, PREG_SET_ORDER)) { $replacements = []; foreach ($matches as $match) { if (!isset($replacements[$match[0]])) { $replacements[$match[0]] = $this->getPlaceholderValue($match[1]); } } $path = $path !== null ? str_replace(array_keys($replacements), $replacements, $path) : ''; } return $path; } /** * Process placeholder * * @param string $placeholder * @return string */ public function getPlaceholderValue($placeholder) { /** @var \Magento\Framework\View\Asset\File\FallbackContext $context */ $context = $this->assetRepo->getStaticViewFileContext(); switch ($placeholder) { case self::VAR_BASE_URL_PATH: return '{{' . self::VAR_BASE_URL_PATH . '}}' . $context->getAreaCode() . ($context->getThemePath() ? '/' . $context->getThemePath() . '/' : '') . '{{locale}}'; default: return ''; } } }