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; } }