![]() 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/module-catalog/Model/Product/Image/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Catalog\Model\Product\Image; use Magento\Catalog\Helper\Image; use Magento\Catalog\Model\View\Asset\PlaceholderFactory; use Magento\Framework\View\ConfigInterface; use Magento\Catalog\Model\View\Asset\ImageFactory; /** * Used to build product image url */ class UrlBuilder { /** * @var ConfigInterface */ private $presentationConfig; /** * @var ImageFactory */ private $viewAssetImageFactory; /** * @var ParamsBuilder */ private $imageParamsBuilder; /** * @var PlaceholderFactory */ private $placeholderFactory; /** * @param ConfigInterface $presentationConfig * @param ParamsBuilder $imageParamsBuilder * @param ImageFactory $viewAssetImageFactory * @param PlaceholderFactory $placeholderFactory */ public function __construct( ConfigInterface $presentationConfig, ParamsBuilder $imageParamsBuilder, ImageFactory $viewAssetImageFactory, PlaceholderFactory $placeholderFactory ) { $this->presentationConfig = $presentationConfig; $this->imageParamsBuilder = $imageParamsBuilder; $this->viewAssetImageFactory = $viewAssetImageFactory; $this->placeholderFactory = $placeholderFactory; } /** * Build image url using base path and params * * @param string $baseFilePath * @param string $imageDisplayArea * @return string */ public function getUrl(string $baseFilePath, string $imageDisplayArea): string { $imageArguments = $this->presentationConfig->getViewConfig()->getMediaAttributes( 'Magento_Catalog', Image::MEDIA_TYPE_CONFIG_NODE, $imageDisplayArea ); $imageMiscParams = $this->imageParamsBuilder->build($imageArguments); if ($baseFilePath === null || $baseFilePath === 'no_selection') { $asset = $this->placeholderFactory->create( [ 'type' => $imageMiscParams['image_type'] ] ); } else { $asset = $this->viewAssetImageFactory->create( [ 'miscParams' => $imageMiscParams, 'filePath' => $baseFilePath, ] ); } return $asset->getUrl(); } }