-
Notifications
You must be signed in to change notification settings - Fork 84
/
Copy pathComposerDumpAutoload.php
71 lines (64 loc) · 1.94 KB
/
ComposerDumpAutoload.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\MagentoCloud\Step\Build;
use Magento\MagentoCloud\App\Error;
use Magento\MagentoCloud\Config\ConfigException;
use Magento\MagentoCloud\Step\StepException;
use Magento\MagentoCloud\Step\StepInterface;
use Magento\MagentoCloud\Shell\ShellException;
use Magento\MagentoCloud\Shell\ShellInterface;
use Magento\MagentoCloud\Config\Stage\BuildInterface;
use Psr\Log\LoggerInterface;
/**
* @inheritdoc
*/
class ComposerDumpAutoload implements StepInterface
{
/**
* @var ShellInterface
*/
private $shell;
/**
* @var BuildInterface
*/
private $stageConfig;
/**
* @var LoggerInterface
*/
private $logger;
/**
* @param ShellInterface $shell
* @param BuildInterface $stageConfig
* @param LoggerInterface $logger
*/
public function __construct(ShellInterface $shell, BuildInterface $stageConfig, LoggerInterface $logger)
{
$this->shell = $shell;
$this->stageConfig = $stageConfig;
$this->logger = $logger;
}
/**
* @inheritdoc
*/
public function execute()
{
try {
if ($this->stageConfig->get(BuildInterface::VAR_SKIP_COMPOSER_DUMP_AUTOLOAD)) {
$this->logger->info(sprintf(
'The composer dump-autoload command was skipped as %s variable is set to true',
BuildInterface::VAR_SKIP_COMPOSER_DUMP_AUTOLOAD
));
return;
}
$this->shell->execute('composer dump-autoload --optimize --apcu --ansi --no-interaction');
} catch (ConfigException $e) {
throw new StepException($e->getMessage(), $e->getCode(), $e);
} catch (ShellException $e) {
throw new StepException($e->getMessage(), Error::BUILD_COMPOSER_DUMP_AUTOLOAD_FAILED, $e);
}
}
}