13 use Psr\Log\LoggerInterface;
25 private $deployStrategyFactory;
30 private $queueFactory;
40 private $objectManager;
45 private $versionStorage;
58 LoggerInterface $logger,
65 $this->versionStorage = $versionStorage;
66 $this->deployStrategyFactory = $deployStrategyFactory;
80 : (new \DateTime())->getTimestamp();
81 $this->versionStorage->save(
$version);
83 if ($this->isRefreshContentVersionOnly(
$options)) {
84 $this->logger->warning(
"New content version: " .
$version);
88 $queue = $this->queueFactory->create(
90 'logger' => $this->logger,
92 'maxProcesses' => $this->getProcessesAmount(
$options),
93 'deployPackageService' => $this->objectManager->create(
94 \
Magento\Deploy\Service\DeployPackage::class,
96 'logger' => $this->logger
102 $deployStrategy = $this->deployStrategyFactory->create(
109 $packages = $deployStrategy->deploy(
$options);
111 if (
$options[Options::NO_JAVASCRIPT] !==
true) {
112 $deployRjsConfig = $this->objectManager->create(DeployRequireJsConfig::class, [
113 'logger' => $this->logger
115 $deployI18n = $this->objectManager->create(DeployTranslationsDictionary::class, [
116 'logger' => $this->logger
118 $deployBundle = $this->objectManager->create(Bundle::class, [
119 'logger' => $this->logger
121 foreach ($packages as $package) {
122 if (!$package->isVirtual()) {
123 $deployRjsConfig->deploy($package->getArea(), $package->getTheme(), $package->getLocale());
124 $deployI18n->deploy($package->getArea(), $package->getTheme(), $package->getLocale());
125 $deployBundle->deploy($package->getArea(), $package->getTheme(), $package->getLocale());
130 if (
$options[Options::NO_HTML_MINIFY] !==
true) {
131 $this->objectManager->get(MinifyTemplates::class)->minifyTemplates();
139 private function getProcessesAmount(array
$options)
141 return isset(
$options[Options::JOBS_AMOUNT]) ? (int)
$options[Options::JOBS_AMOUNT] : 0;
148 private function isRefreshContentVersionOnly(array
$options)
150 return isset(
$options[Options::REFRESH_CONTENT_VERSION_ONLY])
151 &&
$options[Options::REFRESH_CONTENT_VERSION_ONLY];
__construct(ObjectManagerInterface $objectManager, LoggerInterface $logger, StorageInterface $versionStorage, DeployStrategyFactory $deployStrategyFactory, QueueFactory $queueFactory)