b374k
m1n1 1.01
Apache/2.4.41 (Ubuntu)
Linux vmi616275.contaboserver.net 5.4.0-84-generic #94-Ubuntu SMP Thu Aug 26 20:27:37 UTC 2021 x86_64
uid=33(www-data) gid=33(www-data) groups=33(www-data)
server ip : 62.171.164.128 | your ip : 127.0.0.1
safemode OFF
 >  / home / dev2.destoffenstraat.com / vendor / magento / framework / View / Asset / PreProcessor /
Filename/home/dev2.destoffenstraat.com/vendor/magento/framework/View/Asset/PreProcessor/Pool.php
Size2.93 kb
Permissionrw-r--r--
Ownerroot : root
Create time17-Aug-2025 10:26
Last modified07-Jan-2021 21:08
Last accessed23-Aug-2025 21:29
Actionsedit | rename | delete | download (gzip)
Viewtext | code | image
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/

namespace Magento\Framework\View\Asset\PreProcessor;

use Magento\Framework\ObjectManagerInterface;
use Magento\Framework\View\Asset\PreProcessorInterface;

/**
* A registry of asset preprocessors (not to confuse with the "Registry" pattern)
*/
class Pool
{
/**
* Name of property referenced to pre-processor implementation class
*/
const PREPROCESSOR_CLASS = 'class';

/**
* @var array
*/
private $preprocessors;

/**
* @var array
*/
private $instances;

/**
* @var Helper\SortInterface
*/
private $sorter;

/**
* @var string
*/
private $defaultPreprocessor;

/**
* @var ObjectManagerInterface
*/
private $objectManager;

/**
* Constructor
*
* @param ObjectManagerInterface $objectManager
* @param Helper\SortInterface $sorter
* @param string $defaultPreprocessor
* @param array $preprocessors
*/
public function __construct(
ObjectManagerInterface $objectManager,
Helper\SortInterface $sorter,
$defaultPreprocessor,
array $preprocessors = []
) {
$this->preprocessors = $preprocessors;
$this->sorter = $sorter;
$this->defaultPreprocessor = $defaultPreprocessor;
$this->objectManager = $objectManager;
}

/**
* Execute preprocessors instances suitable to convert source content type into a destination one
*
* @param Chain $chain
* @return void
*/
public function process(Chain $chain)
{
$type = $chain->getTargetContentType();
foreach ($this->getPreProcessors($type) as $preProcessor) {
$preProcessor->process($chain);
}
}

/**
* Retrieve preProcessors by types
*
* @param string $type
* @return PreProcessorInterface[]
* @throws \UnexpectedValueException
*/
private function getPreProcessors($type)
{
if (isset($this->instances[$type])) {
return $this->instances[$type];
}

if (isset($this->preprocessors[$type])) {
$preprocessors = $this->sorter->sort($this->preprocessors[$type]);
} else {
$preprocessors = [
'default' => [self::PREPROCESSOR_CLASS => $this->defaultPreprocessor]
];
}

$this->instances[$type] = [];
foreach ($preprocessors as $preprocessor) {
$instance = $this->objectManager->get($preprocessor[self::PREPROCESSOR_CLASS]);
if (!$instance instanceof PreProcessorInterface) {
throw new \UnexpectedValueException(
'"' . $preprocessor[self::PREPROCESSOR_CLASS] . '" has to implement the PreProcessorInterface.'
);
}
$this->instances[$type][] = $instance;
}

return $this->instances[$type];
}
}