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\Catalog\Model\ResourceModel\Product;
use Magento\Framework\DB\Adapter\AdapterInterface;
use Magento\Framework\DB\Query\Generator;
use Magento\Framework\DB\Select;
use Magento\Framework\App\ResourceConnection;
/**
* Class for retrieval of all product images
*/
class Image
{
/**
* @var AdapterInterface
*/
private $connection;
/**
* @var Generator
*/
private $batchQueryGenerator;
/**
* @var ResourceConnection
*/
private $resourceConnection;
/**
* @var int
*/
private $batchSize;
/**
* @param Generator $generator
* @param ResourceConnection $resourceConnection
* @param int $batchSize
*/
public function __construct(
Generator $generator,
ResourceConnection $resourceConnection,
$batchSize = 100
) {
$this->batchQueryGenerator = $generator;
$this->resourceConnection = $resourceConnection;
$this->connection = $this->resourceConnection->getConnection();
$this->batchSize = $batchSize;
}
/**
* Get all product images.
*
* @return \Generator
*/
public function getAllProductImages(): \Generator
{
$batchSelectIterator = $this->batchQueryGenerator->generate(
'value_id',
$this->getVisibleImagesSelect(),
$this->batchSize,
\Magento\Framework\DB\Query\BatchIteratorInterface::NON_UNIQUE_FIELD_ITERATOR
);
foreach ($batchSelectIterator as $select) {
foreach ($this->connection->fetchAll($select) as $key => $value) {
yield $key => $value;
}
}
}
/**
* Get used product images.
*
* @return \Generator
*/
public function getUsedProductImages(): \Generator
{
$batchSelectIterator = $this->batchQueryGenerator->generate(
'value_id',
$this->getUsedImagesSelect(),
$this->batchSize,
\Magento\Framework\DB\Query\BatchIteratorInterface::NON_UNIQUE_FIELD_ITERATOR
);
foreach ($batchSelectIterator as $select) {
foreach ($this->connection->fetchAll($select) as $key => $value) {
yield $key => $value;
}
}
}
/**
* Get the number of unique images of products.
*
* @return int
*/
public function getCountAllProductImages(): int
{
$select = $this->getVisibleImagesSelect()
->reset('columns')
->reset('distinct')
->columns(
new \Zend_Db_Expr('count(distinct value)')
);
return (int) $this->connection->fetchOne($select);
}
/**
* Get the number of unique and used images of products.
*
* @return int
*/
public function getCountUsedProductImages(): int
{
$select = $this->getUsedImagesSelect()
->reset('columns')
->reset('distinct')
->columns(
new \Zend_Db_Expr('count(distinct value)')
);
return (int) $this->connection->fetchOne($select);
}
/**
* Return select to fetch all products images.
*
* @return Select
*/
private function getVisibleImagesSelect(): Select
{
return $this->connection->select()->distinct()
->from(
['images' => $this->resourceConnection->getTableName(Gallery::GALLERY_TABLE)],
'value as filepath'
)->where(
'disabled = 0'
);
}
/**
* Return select to fetch all used product images.
*
* @return Select
*/
private function getUsedImagesSelect(): Select
{
return $this->connection->select()->distinct()
->from(
['images' => $this->resourceConnection->getTableName(Gallery::GALLERY_TABLE)],
'value as filepath'
)->joinInner(
['image_value' => $this->resourceConnection->getTableName(Gallery::GALLERY_VALUE_TABLE)],
'images.value_id = image_value.value_id',
[]
)->where(
'images.disabled = 0 AND image_value.disabled = 0'
);
}
}
?>
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\Catalog\Model\ResourceModel\Product;
use Magento\Framework\DB\Adapter\AdapterInterface;
use Magento\Framework\DB\Query\Generator;
use Magento\Framework\DB\Select;
use Magento\Framework\App\ResourceConnection;
/**
* Class for retrieval of all product images
*/
class Image
{
/**
* @var AdapterInterface
*/
private $connection;
/**
* @var Generator
*/
private $batchQueryGenerator;
/**
* @var ResourceConnection
*/
private $resourceConnection;
/**
* @var int
*/
private $batchSize;
/**
* @param Generator $generator
* @param ResourceConnection $resourceConnection
* @param int $batchSize
*/
public function __construct(
Generator $generator,
ResourceConnection $resourceConnection,
$batchSize = 100
) {
$this->batchQueryGenerator = $generator;
$this->resourceConnection = $resourceConnection;
$this->connection = $this->resourceConnection->getConnection();
$this->batchSize = $batchSize;
}
/**
* Get all product images.
*
* @return \Generator
*/
public function getAllProductImages(): \Generator
{
$batchSelectIterator = $this->batchQueryGenerator->generate(
'value_id',
$this->getVisibleImagesSelect(),
$this->batchSize,
\Magento\Framework\DB\Query\BatchIteratorInterface::NON_UNIQUE_FIELD_ITERATOR
);
foreach ($batchSelectIterator as $select) {
foreach ($this->connection->fetchAll($select) as $key => $value) {
yield $key => $value;
}
}
}
/**
* Get used product images.
*
* @return \Generator
*/
public function getUsedProductImages(): \Generator
{
$batchSelectIterator = $this->batchQueryGenerator->generate(
'value_id',
$this->getUsedImagesSelect(),
$this->batchSize,
\Magento\Framework\DB\Query\BatchIteratorInterface::NON_UNIQUE_FIELD_ITERATOR
);
foreach ($batchSelectIterator as $select) {
foreach ($this->connection->fetchAll($select) as $key => $value) {
yield $key => $value;
}
}
}
/**
* Get the number of unique images of products.
*
* @return int
*/
public function getCountAllProductImages(): int
{
$select = $this->getVisibleImagesSelect()
->reset('columns')
->reset('distinct')
->columns(
new \Zend_Db_Expr('count(distinct value)')
);
return (int) $this->connection->fetchOne($select);
}
/**
* Get the number of unique and used images of products.
*
* @return int
*/
public function getCountUsedProductImages(): int
{
$select = $this->getUsedImagesSelect()
->reset('columns')
->reset('distinct')
->columns(
new \Zend_Db_Expr('count(distinct value)')
);
return (int) $this->connection->fetchOne($select);
}
/**
* Return select to fetch all products images.
*
* @return Select
*/
private function getVisibleImagesSelect(): Select
{
return $this->connection->select()->distinct()
->from(
['images' => $this->resourceConnection->getTableName(Gallery::GALLERY_TABLE)],
'value as filepath'
)->where(
'disabled = 0'
);
}
/**
* Return select to fetch all used product images.
*
* @return Select
*/
private function getUsedImagesSelect(): Select
{
return $this->connection->select()->distinct()
->from(
['images' => $this->resourceConnection->getTableName(Gallery::GALLERY_TABLE)],
'value as filepath'
)->joinInner(
['image_value' => $this->resourceConnection->getTableName(Gallery::GALLERY_VALUE_TABLE)],
'images.value_id = image_value.value_id',
[]
)->where(
'images.disabled = 0 AND image_value.disabled = 0'
);
}
}
Function Calls
None |
Stats
MD5 | 1570aa811105a5f55ec3f9e64ce8886f |
Eval Count | 0 |
Decode Time | 85 ms |