mirror of
https://github.com/bdnugget/magento2.git
synced 2026-11-07 09:17:35 +00:00
120 lines
3.4 KiB
PHP
120 lines
3.4 KiB
PHP
<?php
|
|
/**
|
|
* Copyright © Magento, Inc. All rights reserved.
|
|
* See COPYING.txt for license details.
|
|
*/
|
|
namespace Magento\Deploy\Service;
|
|
|
|
use Magento\Framework\Locale\ResolverInterfaceFactory;
|
|
use Magento\Framework\Locale\ResolverInterface;
|
|
use Magento\RequireJs\Model\FileManagerFactory;
|
|
use Magento\Framework\View\DesignInterfaceFactory;
|
|
use Magento\Framework\View\Design\Theme\ListInterface;
|
|
use Magento\Framework\View\Asset\RepositoryFactory;
|
|
use Magento\Framework\RequireJs\ConfigFactory;
|
|
|
|
/**
|
|
* Deploy RequireJS configuration service
|
|
*/
|
|
class DeployRequireJsConfig
|
|
{
|
|
/**
|
|
* Default jobs amount
|
|
*/
|
|
const DEFAULT_JOBS_AMOUNT = 4;
|
|
|
|
/**
|
|
* @var ListInterface
|
|
*/
|
|
private $themeList;
|
|
|
|
/**
|
|
* @var DesignInterfaceFactory
|
|
*/
|
|
private $designFactory;
|
|
|
|
/**
|
|
* @var RepositoryFactory
|
|
*/
|
|
private $assetRepoFactory;
|
|
|
|
/**
|
|
* @var FileManagerFactory
|
|
*/
|
|
private $fileManagerFactory;
|
|
|
|
/**
|
|
* @var ConfigFactory
|
|
*/
|
|
private $requireJsConfigFactory;
|
|
|
|
/**
|
|
* @var ResolverInterfaceFactory
|
|
*/
|
|
private $localeFactory;
|
|
|
|
/**
|
|
* DeployRequireJsConfig constructor
|
|
*
|
|
* @param ListInterface $themeList
|
|
* @param DesignInterfaceFactory $designFactory
|
|
* @param RepositoryFactory $assetRepoFactory
|
|
* @param FileManagerFactory $fileManagerFactory
|
|
* @param ConfigFactory $requireJsConfigFactory
|
|
* @param ResolverInterfaceFactory $localeFactory
|
|
*/
|
|
public function __construct(
|
|
ListInterface $themeList,
|
|
DesignInterfaceFactory $designFactory,
|
|
RepositoryFactory $assetRepoFactory,
|
|
FileManagerFactory $fileManagerFactory,
|
|
ConfigFactory $requireJsConfigFactory,
|
|
ResolverInterfaceFactory $localeFactory
|
|
) {
|
|
$this->themeList = $themeList;
|
|
$this->designFactory = $designFactory;
|
|
$this->assetRepoFactory = $assetRepoFactory;
|
|
$this->fileManagerFactory = $fileManagerFactory;
|
|
$this->requireJsConfigFactory = $requireJsConfigFactory;
|
|
$this->localeFactory = $localeFactory;
|
|
}
|
|
|
|
/**
|
|
* @param string $areaCode
|
|
* @param string $themePath
|
|
* @param string $localeCode
|
|
* @return bool true on success
|
|
*/
|
|
public function deploy($areaCode, $themePath, $localeCode)
|
|
{
|
|
/** @var \Magento\Framework\View\Design\ThemeInterface $theme */
|
|
$theme = $this->themeList->getThemeByFullPath($areaCode . '/' . $themePath);
|
|
/** @var \Magento\Theme\Model\View\Design $design */
|
|
$design = $this->designFactory->create()->setDesignTheme($theme, $areaCode);
|
|
/** @var ResolverInterface $locale */
|
|
$locale = $this->localeFactory->create();
|
|
$locale->setLocale($localeCode);
|
|
$design->setLocale($locale);
|
|
|
|
$assetRepo = $this->assetRepoFactory->create(['design' => $design]);
|
|
/** @var \Magento\RequireJs\Model\FileManager $fileManager */
|
|
$fileManager = $this->fileManagerFactory->create(
|
|
[
|
|
'config' => $this->requireJsConfigFactory->create(
|
|
[
|
|
'assetRepo' => $assetRepo,
|
|
'design' => $design,
|
|
]
|
|
),
|
|
'assetRepo' => $assetRepo,
|
|
]
|
|
);
|
|
|
|
$fileManager->createRequireJsConfigAsset();
|
|
|
|
$fileManager->createMinResolverAsset();
|
|
|
|
return true;
|
|
}
|
|
}
|