Skip to content

Commit 71c7f79

Browse files
committed
Fix array_merge in loop
1 parent 46679e7 commit 71c7f79

File tree

3 files changed

+47
-27
lines changed

3 files changed

+47
-27
lines changed

setup/src/Magento/Setup/Module/Di/App/Task/Operation/ApplicationCodeGenerator.php

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
*/
66
namespace Magento\Setup\Module\Di\App\Task\Operation;
77

8-
use Magento\Framework\App\Bootstrap;
98
use Magento\Framework\Exception\FileSystemException;
109
use Magento\Setup\Module\Di\App\Task\OperationInterface;
1110
use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
@@ -17,7 +16,7 @@ class ApplicationCodeGenerator implements OperationInterface
1716
/**
1817
* @var array
1918
*/
20-
private $data = [];
19+
private $data;
2120

2221
/**
2322
* @var ClassesScanner
@@ -66,15 +65,10 @@ public function doOperation()
6665
if (!is_array($paths)) {
6766
$paths = (array)$paths;
6867
}
69-
$files = [];
70-
foreach ($paths as $path) {
71-
$this->classesScanner->getList($path);
72-
$files = array_merge_recursive(
73-
$files,
74-
$this->directoryScanner->scan($path, $this->data['filePatterns'], $this->data['excludePatterns'])
75-
);
76-
}
77-
$entities = $this->phpScanner->collectEntities($files['php']);
68+
69+
$files = $this->getFiles($paths);
70+
71+
$entities = $this->phpScanner->collectEntities($files['php'] ?? []);
7872
foreach ($entities as $entityName) {
7973
class_exists($entityName);
8074
}
@@ -90,4 +84,26 @@ public function getName()
9084
{
9185
return 'Application code generator';
9286
}
87+
88+
/**
89+
* @param string[] $paths
90+
* @return array
91+
* @throws FileSystemException
92+
*/
93+
private function getFiles(array $paths): array
94+
{
95+
$files = [];
96+
97+
foreach ($paths as $path) {
98+
$this->classesScanner->getList($path);
99+
100+
$files[] = $this->directoryScanner->scan(
101+
$path,
102+
$this->data['filePatterns'],
103+
$this->data['excludePatterns']
104+
);
105+
}
106+
107+
return array_merge_recursive([], ...$files);
108+
}
93109
}

setup/src/Magento/Setup/Module/Di/App/Task/Operation/Interception.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
*/
66
namespace Magento\Setup\Module\Di\App\Task\Operation;
77

8+
use Magento\Framework\App;
9+
use Magento\Framework\Code\Generator\Io;
10+
use Magento\Framework\Filesystem\Driver\File;
11+
use Magento\Framework\Interception\Code\Generator\Interceptor;
812
use Magento\Setup\Module\Di\App\Task\OperationInterface;
913
use Magento\Setup\Module\Di\Code\Generator\InterceptionConfigurationBuilder;
10-
use Magento\Framework\Interception\Code\Generator\Interceptor;
11-
use Magento\Framework\App;
1214
use Magento\Setup\Module\Di\Code\GeneratorFactory;
1315
use Magento\Setup\Module\Di\Code\Reader\ClassesScanner;
1416

@@ -27,7 +29,7 @@ class Interception implements OperationInterface
2729
/**
2830
* @var array
2931
*/
30-
private $data = [];
32+
private $data;
3133

3234
/**
3335
* @var ClassesScanner
@@ -80,14 +82,12 @@ public function doOperation()
8082
$paths = (array)$paths;
8183
}
8284
foreach ($paths as $path) {
83-
$classesList = array_merge($classesList, $this->classesScanner->getList($path));
85+
$classesList[] = $this->classesScanner->getList($path);
8486
}
8587
}
88+
$classesList = array_merge([], ...$classesList);
8689

87-
$generatorIo = new \Magento\Framework\Code\Generator\Io(
88-
new \Magento\Framework\Filesystem\Driver\File(),
89-
$this->data['path_to_store']
90-
);
90+
$generatorIo = new Io(new File(), $this->data['path_to_store']);
9191
$generator = $this->generatorFactory->create(
9292
[
9393
'ioObject' => $generatorIo,

setup/src/Magento/Setup/Module/Di/App/Task/Operation/InterceptionCache.php

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,35 @@
55
*/
66
namespace Magento\Setup\Module\Di\App\Task\Operation;
77

8+
use Magento\Framework\Interception\Config\Config;
89
use Magento\Setup\Module\Di\App\Task\OperationInterface;
10+
use Magento\Setup\Module\Di\Code\Reader\Decorator\Interceptions;
911

1012
class InterceptionCache implements OperationInterface
1113
{
1214
/**
1315
* @var array
1416
*/
15-
private $data = [];
17+
private $data;
1618

1719
/**
18-
* @var \Magento\Framework\Interception\Config\Config
20+
* @var Config
1921
*/
2022
private $configInterface;
2123

2224
/**
23-
* @var \Magento\Setup\Module\Di\Code\Reader\Decorator\Interceptions
25+
* @var Interceptions
2426
*/
2527
private $interceptionsInstancesNamesList;
2628

2729
/**
28-
* @param \Magento\Framework\Interception\Config\Config $configInterface
29-
* @param \Magento\Setup\Module\Di\Code\Reader\Decorator\Interceptions $interceptionsInstancesNamesList
30+
* @param Config $configInterface
31+
* @param Interceptions $interceptionsInstancesNamesList
3032
* @param array $data
3133
*/
3234
public function __construct(
33-
\Magento\Framework\Interception\Config\Config $configInterface,
34-
\Magento\Setup\Module\Di\Code\Reader\Decorator\Interceptions $interceptionsInstancesNamesList,
35+
Config $configInterface,
36+
Interceptions $interceptionsInstancesNamesList,
3537
array $data = []
3638
) {
3739
$this->configInterface = $configInterface;
@@ -56,10 +58,12 @@ public function doOperation()
5658
$paths = (array)$paths;
5759
}
5860
foreach ($paths as $path) {
59-
$definitions = array_merge($definitions, $this->interceptionsInstancesNamesList->getList($path));
61+
$definitions[] = $this->interceptionsInstancesNamesList->getList($path);
6062
}
6163
}
6264

65+
$definitions = array_merge([], ...$definitions);
66+
6367
$this->configInterface->initialize($definitions);
6468
}
6569

0 commit comments

Comments
 (0)