6
6
7
7
namespace Magento \Indexer \Console \Command ;
8
8
9
+ use Magento \Framework \App \ObjectManagerFactory ;
9
10
use Magento \Framework \Console \Cli ;
10
11
use Magento \Framework \Exception \LocalizedException ;
11
12
use Magento \Framework \Indexer \Config \DependencyInfoProvider ;
13
+ use Magento \Framework \Indexer \ConfigInterface ;
12
14
use Magento \Framework \Indexer \IndexerInterface ;
13
15
use Magento \Framework \Indexer \IndexerRegistry ;
14
16
use Magento \Framework \Indexer \StateInterface ;
15
17
use Symfony \Component \Console \Input \InputInterface ;
16
18
use Symfony \Component \Console \Output \OutputInterface ;
17
- use Magento \Framework \Indexer \ConfigInterface ;
18
- use Magento \Framework \App \ObjectManagerFactory ;
19
19
20
20
/**
21
21
* Command to run indexers
@@ -78,6 +78,9 @@ protected function execute(InputInterface $input, OutputInterface $output)
78
78
foreach ($ this ->getIndexers ($ input ) as $ indexer ) {
79
79
try {
80
80
$ this ->validateIndexerStatus ($ indexer );
81
+
82
+ $ output ->write ($ indexer ->getTitle () . ' index ' );
83
+
81
84
$ startTime = microtime (true );
82
85
$ indexerConfig = $ this ->getConfig ()->getIndexer ($ indexer ->getId ());
83
86
$ sharedIndex = $ indexerConfig ['shared_index ' ];
@@ -90,17 +93,21 @@ protected function execute(InputInterface $input, OutputInterface $output)
90
93
}
91
94
}
92
95
$ resultTime = microtime (true ) - $ startTime ;
96
+
93
97
$ output ->writeln (
94
- $ indexer -> getTitle () . ' index has been rebuilt successfully in ' . gmdate ('H:i:s ' , $ resultTime )
98
+ __ ( ' has been rebuilt successfully in %time ' , [ ' time ' => gmdate ('H:i:s ' , $ resultTime)] )
95
99
);
96
100
$ returnValue = Cli::RETURN_SUCCESS ;
97
101
} catch (LocalizedException $ e ) {
98
- $ output ->writeln ($ e ->getMessage ());
102
+ $ output ->writeln (__ ( ' exception: %message ' , [ ' message ' => $ e ->getMessage ()] ));
99
103
} catch (\Exception $ e ) {
100
- $ output ->writeln ($ indexer -> getTitle () . ' indexer process unknown error: ' );
104
+ $ output ->writeln (' process unknown error: ' );
101
105
$ output ->writeln ($ e ->getMessage ());
106
+
107
+ $ output ->writeln ($ e ->getTraceAsString (), OutputInterface::VERBOSITY_DEBUG );
102
108
}
103
109
}
110
+
104
111
return $ returnValue ;
105
112
}
106
113
@@ -111,25 +118,23 @@ protected function execute(InputInterface $input, OutputInterface $output)
111
118
*/
112
119
protected function getIndexers (InputInterface $ input )
113
120
{
114
- $ indexers = parent ::getIndexers ($ input );
121
+ $ indexers = parent ::getIndexers ($ input );
115
122
$ allIndexers = $ this ->getAllIndexers ();
116
123
if (!array_diff_key ($ allIndexers , $ indexers )) {
117
124
return $ indexers ;
118
125
}
119
126
120
- $ relatedIndexers = [];
121
- $ dependentIndexers = [];
127
+ $ relatedIndexers = [[]];
128
+ $ dependentIndexers = [[]];
129
+
122
130
foreach ($ indexers as $ indexer ) {
123
- $ relatedIndexers = array_merge (
124
- $ relatedIndexers ,
125
- $ this ->getRelatedIndexerIds ($ indexer ->getId ())
126
- );
127
- $ dependentIndexers = array_merge (
128
- $ dependentIndexers ,
129
- $ this ->getDependentIndexerIds ($ indexer ->getId ())
130
- );
131
+ $ relatedIndexers [] = $ this ->getRelatedIndexerIds ($ indexer ->getId ());
132
+ $ dependentIndexers [] = $ this ->getDependentIndexerIds ($ indexer ->getId ());
131
133
}
132
134
135
+ $ relatedIndexers = array_merge (...$ relatedIndexers );
136
+ $ dependentIndexers = array_merge (...$ dependentIndexers );
137
+
133
138
$ invalidRelatedIndexers = [];
134
139
foreach (array_unique ($ relatedIndexers ) as $ relatedIndexer ) {
135
140
if ($ allIndexers [$ relatedIndexer ]->isInvalid ()) {
@@ -157,18 +162,15 @@ protected function getIndexers(InputInterface $input)
157
162
* @param string $indexerId
158
163
* @return array
159
164
*/
160
- private function getRelatedIndexerIds (string $ indexerId )
165
+ private function getRelatedIndexerIds (string $ indexerId ): array
161
166
{
162
- $ relatedIndexerIds = [];
167
+ $ relatedIndexerIds = [[] ];
163
168
foreach ($ this ->getDependencyInfoProvider ()->getIndexerIdsToRunBefore ($ indexerId ) as $ relatedIndexerId ) {
164
- $ relatedIndexerIds = array_merge (
165
- $ relatedIndexerIds ,
166
- [$ relatedIndexerId ],
167
- $ this ->getRelatedIndexerIds ($ relatedIndexerId )
168
- );
169
+ $ relatedIndexerIds [] = [$ relatedIndexerId ];
170
+ $ relatedIndexerIds [] = $ this ->getRelatedIndexerIds ($ relatedIndexerId );
169
171
}
170
172
171
- return array_unique ($ relatedIndexerIds );
173
+ return array_unique (array_merge (... $ relatedIndexerIds) );
172
174
}
173
175
174
176
/**
@@ -177,21 +179,18 @@ private function getRelatedIndexerIds(string $indexerId)
177
179
* @param string $indexerId
178
180
* @return array
179
181
*/
180
- private function getDependentIndexerIds (string $ indexerId )
182
+ private function getDependentIndexerIds (string $ indexerId ): array
181
183
{
182
- $ dependentIndexerIds = [];
184
+ $ dependentIndexerIds = [[] ];
183
185
foreach (array_keys ($ this ->getConfig ()->getIndexers ()) as $ id ) {
184
186
$ dependencies = $ this ->getDependencyInfoProvider ()->getIndexerIdsToRunBefore ($ id );
185
187
if (array_search ($ indexerId , $ dependencies ) !== false ) {
186
- $ dependentIndexerIds = array_merge (
187
- $ dependentIndexerIds ,
188
- [$ id ],
189
- $ this ->getDependentIndexerIds ($ id )
190
- );
188
+ $ dependentIndexerIds [] = [$ id ];
189
+ $ dependentIndexerIds [] = $ this ->getDependentIndexerIds ($ id );
191
190
}
192
191
}
193
192
194
- return array_unique ($ dependentIndexerIds );
193
+ return array_unique (array_merge (... $ dependentIndexerIds) );
195
194
}
196
195
197
196
/**
0 commit comments