1616use Youwe \TestingSuite \Composer \ProjectTypeResolver ;
1717
1818/**
19- * @SuppressWarnings(PHPMD.ShortVariable)
19+ * @SuppressWarnings(" PHPMD.ShortVariable" )
2020 */
2121class PackagesInstaller implements InstallerInterface
2222{
@@ -33,37 +33,49 @@ class PackagesInstaller implements InstallerInterface
3333 private $ io ;
3434
3535 /** @var array */
36- private $ mapping = [
37- MappingResolver::DEFAULT_MAPPING_TYPE => [],
36+ public $ mapping = [
37+ MappingResolver::DEFAULT_MAPPING_TYPE => [
38+ [
39+ 'name ' => 'phpunit/phpunit ' ,
40+ 'version ' => '@stable ' ,
41+ 'dev ' => true ,
42+ 'allowVersionOverride ' => false
43+ ]
44+ ],
3845 'magento1 ' => [
3946 [
4047 'name ' => 'youwe/coding-standard-magento1 ' ,
4148 'version ' => '^1.3.0 ' ,
42- 'dev ' => true
49+ 'dev ' => true ,
50+ 'allowVersionOverride ' => true
4351 ]
4452 ],
4553 'magento2 ' => [
4654 [
4755 'name ' => 'youwe/coding-standard-magento2 ' ,
4856 'version ' => '^2.0.0 ' ,
49- 'dev ' => true
57+ 'dev ' => true ,
58+ 'allowVersionOverride ' => true
5059 ],
5160 [
5261 'name ' => 'phpstan/extension-installer ' ,
5362 'version ' => '^1.3 ' ,
54- 'dev ' => true
63+ 'dev ' => true ,
64+ 'allowVersionOverride ' => true ,
5565 ],
5666 [
5767 'name ' => 'bitexpert/phpstan-magento ' ,
5868 'version ' => '~0.30 ' ,
59- 'dev ' => true
69+ 'dev ' => true ,
70+ 'allowVersionOverride ' => true ,
6071 ],
6172 ],
6273 'laravel ' => [
6374 [
6475 'name ' => 'elgentos/laravel-coding-standard ' ,
6576 'version ' => '^1.0.0 ' ,
66- 'dev ' => true
77+ 'dev ' => true ,
78+ 'allowVersionOverride ' => true ,
6779 ]
6880 ]
6981 ];
@@ -99,19 +111,21 @@ public function __construct(
99111 public function install (): void
100112 {
101113 $ 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 ]);
105116
106- foreach ($ this -> mapping [ $ type ] as $ package ) {
117+ foreach ($ packagesToInstall as $ package ) {
107118 if (!$ this ->isPackageRequired ($ package ['name ' ], $ package ['version ' ])) {
108119 $ this ->io ->write (
109120 sprintf ('Requiring package %s ' , $ package ['name ' ])
110121 );
111122
112123 $ this ->installer ->installPackage (
113124 $ package ['name ' ],
114- $ package ['version ' ]
125+ $ package ['version ' ],
126+ true ,
127+ false ,
128+ $ package ['allowVersionOverride ' ]
115129 );
116130 }
117131 }
0 commit comments