123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\View\Asset\Bundle;
- use Magento\Framework\App\ObjectManager;
- use Magento\Framework\View;
- use Magento\Framework\View\Asset\Bundle;
- use Magento\Framework\View\Design\Theme\ListInterface;
- use Magento\Framework\View\Asset\File\FallbackContext;
- use Magento\Framework\View\Design\Theme\ThemeProviderInterface;
- /**
- * Class Config
- * @deprecated 101.0.0
- * @see \Magento\Deploy\Config\BundleConfig
- */
- class Config implements Bundle\ConfigInterface
- {
- /**#@+
- * Bundle config info
- */
- const VIEW_CONFIG_MODULE = 'Js_Bundle';
- const VIEW_CONFIG_BUNDLE_SIZE_NAME = 'bundle_size';
- /**#@-*/
- /**#@-*/
- protected $themeList;
- /**
- * @var View\ConfigInterface
- */
- protected $viewConfig;
- /**
- * @var ThemeProviderInterface
- */
- private $themeProvider;
- /**
- * @var \Magento\Framework\Config\View[]
- */
- private $config = [];
- /**
- * @param View\ConfigInterface $viewConfig
- * @param ListInterface $themeList
- */
- public function __construct(
- View\ConfigInterface $viewConfig,
- ListInterface $themeList
- ) {
- $this->viewConfig = $viewConfig;
- $this->themeList = $themeList;
- }
- /**
- * @param FallbackContext $assetContext
- * @return bool
- */
- public function isSplit(FallbackContext $assetContext)
- {
- return (bool)$this->getPartSize($assetContext);
- }
- /**
- * @param FallbackContext $assetContext
- * @return \Magento\Framework\Config\View
- */
- public function getConfig(FallbackContext $assetContext)
- {
- $themePath = $assetContext->getAreaCode() . '/' . $assetContext->getThemePath();
- if (!isset($this->config[$themePath])) {
- $this->config[$themePath] = $this->viewConfig->getViewConfig([
- 'area' => $assetContext->getAreaCode(),
- 'themeModel' => $this->getThemeProvider()->getThemeByFullPath(
- $themePath
- )
- ]);
- }
- return $this->config[$themePath];
- }
- /**
- * @param FallbackContext $assetContext
- * @return int
- */
- public function getPartSize(FallbackContext $assetContext)
- {
- $size = $this->getConfig($assetContext)->getVarValue(
- self::VIEW_CONFIG_MODULE,
- self::VIEW_CONFIG_BUNDLE_SIZE_NAME
- );
- $unit = preg_replace('/[^a-zA-Z]+/', '', $size);
- $unit = strtoupper($unit);
- switch ($unit) {
- case 'KB':
- return (int)$size;
- case 'MB':
- return (int)$size * 1024;
- default:
- return (int)($size / 1024);
- }
- }
- /**
- * @return ThemeProviderInterface
- */
- private function getThemeProvider()
- {
- if (null === $this->themeProvider) {
- $this->themeProvider = ObjectManager::getInstance()->get(ThemeProviderInterface::class);
- }
- return $this->themeProvider;
- }
- }
|