Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php /** * Copyright Magento, Inc. All rights reserved. * See COPYING.txt for license ..
Decoded Output download
<?php
/**
* Copyright Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\CatalogGraphQl\Model\Resolver\Product\MediaGallery;
use Magento\Catalog\Model\Product;
use Magento\Catalog\Model\Product\ImageFactory;
use Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Image\Placeholder as PlaceholderProvider;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\GraphQl\Config\Element\Field;
use Magento\Framework\GraphQl\Query\ResolverInterface;
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
use Magento\Framework\ObjectManager\ResetAfterRequestInterface;
/**
* Returns media url
*/
class Url implements ResolverInterface, ResetAfterRequestInterface
{
/**
* @var ImageFactory
*/
private $productImageFactory;
/**
* @var PlaceholderProvider
*/
private $placeholderProvider;
/**
* @var string[]
*/
private $placeholderCache = [];
/**
* @param ImageFactory $productImageFactory
* @param PlaceholderProvider $placeholderProvider
*/
public function __construct(
ImageFactory $productImageFactory,
PlaceholderProvider $placeholderProvider
) {
$this->productImageFactory = $productImageFactory;
$this->placeholderProvider = $placeholderProvider;
}
/**
* @inheritdoc
*/
public function resolve(
Field $field,
$context,
ResolveInfo $info,
array $value = null,
array $args = null
) {
if (!isset($value['image_type']) && !isset($value['file'])) {
throw new LocalizedException(__('"image_type" value should be specified'));
}
if (!isset($value['model'])) {
throw new LocalizedException(__('"model" value should be specified'));
}
/** @var Product $product */
$product = $value['model'];
if (isset($value['image_type'])) {
$imagePath = $product->getData($value['image_type']);
return $this->getImageUrl($value['image_type'], $imagePath);
} elseif (isset($value['file'])) {
return $this->getImageUrl('image', $value['file']);
}
return [];
}
/**
* Get image URL
*
* @param string $imageType
* @param string|null $imagePath
* @return string
* @throws \Exception
*/
private function getImageUrl(string $imageType, ?string $imagePath): string
{
if (empty($imagePath) && !empty($this->placeholderCache[$imageType])) {
return $this->placeholderCache[$imageType];
}
$image = $this->productImageFactory->create();
$image->setDestinationSubdir($imageType)
->setBaseFile($imagePath);
if ($image->isBaseFilePlaceholder()) {
$this->placeholderCache[$imageType] = $this->placeholderProvider->getPlaceholder($imageType);
return $this->placeholderCache[$imageType];
}
return $image->getUrl();
}
/**
* @inheritDoc
*/
public function _resetState(): void
{
$this->placeholderCache = [];
}
}
?>
Did this file decode correctly?
Original Code
<?php
/**
* Copyright Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\CatalogGraphQl\Model\Resolver\Product\MediaGallery;
use Magento\Catalog\Model\Product;
use Magento\Catalog\Model\Product\ImageFactory;
use Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Image\Placeholder as PlaceholderProvider;
use Magento\Framework\Exception\LocalizedException;
use Magento\Framework\GraphQl\Config\Element\Field;
use Magento\Framework\GraphQl\Query\ResolverInterface;
use Magento\Framework\GraphQl\Schema\Type\ResolveInfo;
use Magento\Framework\ObjectManager\ResetAfterRequestInterface;
/**
* Returns media url
*/
class Url implements ResolverInterface, ResetAfterRequestInterface
{
/**
* @var ImageFactory
*/
private $productImageFactory;
/**
* @var PlaceholderProvider
*/
private $placeholderProvider;
/**
* @var string[]
*/
private $placeholderCache = [];
/**
* @param ImageFactory $productImageFactory
* @param PlaceholderProvider $placeholderProvider
*/
public function __construct(
ImageFactory $productImageFactory,
PlaceholderProvider $placeholderProvider
) {
$this->productImageFactory = $productImageFactory;
$this->placeholderProvider = $placeholderProvider;
}
/**
* @inheritdoc
*/
public function resolve(
Field $field,
$context,
ResolveInfo $info,
array $value = null,
array $args = null
) {
if (!isset($value['image_type']) && !isset($value['file'])) {
throw new LocalizedException(__('"image_type" value should be specified'));
}
if (!isset($value['model'])) {
throw new LocalizedException(__('"model" value should be specified'));
}
/** @var Product $product */
$product = $value['model'];
if (isset($value['image_type'])) {
$imagePath = $product->getData($value['image_type']);
return $this->getImageUrl($value['image_type'], $imagePath);
} elseif (isset($value['file'])) {
return $this->getImageUrl('image', $value['file']);
}
return [];
}
/**
* Get image URL
*
* @param string $imageType
* @param string|null $imagePath
* @return string
* @throws \Exception
*/
private function getImageUrl(string $imageType, ?string $imagePath): string
{
if (empty($imagePath) && !empty($this->placeholderCache[$imageType])) {
return $this->placeholderCache[$imageType];
}
$image = $this->productImageFactory->create();
$image->setDestinationSubdir($imageType)
->setBaseFile($imagePath);
if ($image->isBaseFilePlaceholder()) {
$this->placeholderCache[$imageType] = $this->placeholderProvider->getPlaceholder($imageType);
return $this->placeholderCache[$imageType];
}
return $image->getUrl();
}
/**
* @inheritDoc
*/
public function _resetState(): void
{
$this->placeholderCache = [];
}
}
Function Calls
| None |
Stats
| MD5 | 718bb41fed7f448b5fc103feb9b159a0 |
| Eval Count | 0 |
| Decode Time | 97 ms |