|
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 |
Size | 2.93 kb |
Permission | rw-r--r-- |
Owner | root : root |
Create time | 17-Aug-2025 10:26 |
Last modified | 07-Jan-2021 21:08 |
Last accessed | 23-Aug-2025 21:29 |
Actions | edit | rename | delete | download (gzip) |
View | text | 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];
}
}
/**
* 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];
}
}