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
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
declare(strict_types=1);
namespace Magento\InventoryComposerInstaller;
use Composer\Package\Package;
use Composer\IO\IOInterface;
class InventoryModuleDeployment
{
private $configurator;
private $io;
public function __construct
(
InventoryConfiguratorInterface $configurator,
IOInterface $io
) {
$this->configurator = $configurator;
$this->io = $io;
}
public function deploy(Package $package): void
{
if ($package->getType() !== 'magento2-module') {
return;
}
$packageName = $package->getName();
if (0 !== strpos($packageName,'magento/module-inventory')) {
return;
}
$moduleName = $this->packageNameToModuleName($packageName);
$this->io->writeError(sprintf(
' ...Module %s recognized as part of Magento Multi Source Inventory implementation',
$moduleName
), true);
$this->configurator->configure($moduleName);
}
private function packageNameToModuleName(string $packageName): string
{
$nameWithDashes = substr($packageName, strlen('magento/module-'));
$nameInCamelCase = ucwords($nameWithDashes, '-');
$nameWithoutDashes = str_replace('-', '', $nameInCamelCase);
$nameWithVendorPrefix = 'Magento_' . $nameWithoutDashes;
$packageName = $nameWithVendorPrefix;
return $packageName;
}
}