16
16
use Youwe \TestingSuite \Composer \ProjectTypeResolver ;
17
17
18
18
/**
19
- * @SuppressWarnings(PHPMD.ShortVariable)
19
+ * @SuppressWarnings(" PHPMD.ShortVariable" )
20
20
*/
21
21
class PackagesInstaller implements InstallerInterface
22
22
{
@@ -34,36 +34,48 @@ class PackagesInstaller implements InstallerInterface
34
34
35
35
/** @var array */
36
36
private $ mapping = [
37
- MappingResolver::DEFAULT_MAPPING_TYPE => [],
37
+ MappingResolver::DEFAULT_MAPPING_TYPE => [
38
+ [
39
+ 'name ' => 'phpunit/phpunit ' ,
40
+ 'version ' => '@stable ' ,
41
+ 'dev ' => true ,
42
+ 'allowVersionOverride ' => false
43
+ ]
44
+ ],
38
45
'magento1 ' => [
39
46
[
40
47
'name ' => 'youwe/coding-standard-magento1 ' ,
41
48
'version ' => '^1.3.0 ' ,
42
- 'dev ' => true
49
+ 'dev ' => true ,
50
+ 'allowVersionOverride ' => true
43
51
]
44
52
],
45
53
'magento2 ' => [
46
54
[
47
55
'name ' => 'youwe/coding-standard-magento2 ' ,
48
56
'version ' => '^2.0.0 ' ,
49
- 'dev ' => true
57
+ 'dev ' => true ,
58
+ 'allowVersionOverride ' => true
50
59
],
51
60
[
52
61
'name ' => 'phpstan/extension-installer ' ,
53
62
'version ' => '^1.3 ' ,
54
- 'dev ' => true
63
+ 'dev ' => true ,
64
+ 'allowVersionOverride ' => true ,
55
65
],
56
66
[
57
67
'name ' => 'bitexpert/phpstan-magento ' ,
58
68
'version ' => '~0.30 ' ,
59
- 'dev ' => true
69
+ 'dev ' => true ,
70
+ 'allowVersionOverride ' => true ,
60
71
],
61
72
],
62
73
'laravel ' => [
63
74
[
64
75
'name ' => 'elgentos/laravel-coding-standard ' ,
65
76
'version ' => '^1.0.0 ' ,
66
- 'dev ' => true
77
+ 'dev ' => true ,
78
+ 'allowVersionOverride ' => true ,
67
79
]
68
80
]
69
81
];
@@ -99,19 +111,21 @@ public function __construct(
99
111
public function install (): void
100
112
{
101
113
$ type = $ this ->typeResolver ->resolve ();
102
- if (!isset ($ this ->mapping [$ type ])) {
103
- return ;
104
- }
114
+ $ projectTypePackages = $ this ->mapping [$ type ] ?? [];
115
+ $ packagesToInstall = array_merge ($ projectTypePackages , $ this ->mapping [MappingResolver::DEFAULT_MAPPING_TYPE ]);
105
116
106
- foreach ($ this -> mapping [ $ type ] as $ package ) {
117
+ foreach ($ packagesToInstall as $ package ) {
107
118
if (!$ this ->isPackageRequired ($ package ['name ' ], $ package ['version ' ])) {
108
119
$ this ->io ->write (
109
120
sprintf ('Requiring package %s ' , $ package ['name ' ])
110
121
);
111
122
112
123
$ this ->installer ->installPackage (
113
124
$ package ['name ' ],
114
- $ package ['version ' ]
125
+ $ package ['version ' ],
126
+ true ,
127
+ false ,
128
+ $ package ['allowVersionOverride ' ]
115
129
);
116
130
}
117
131
}
0 commit comments