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
@@ -76,9 +76,11 @@ protected function execute(InputInterface $input, OutputInterface $output)
76
76
{
77
77
$ returnValue = Cli::RETURN_FAILURE ;
78
78
foreach ($ this ->getIndexers ($ input ) as $ indexer ) {
79
- $ output ->write ($ indexer ->getTitle () . ' ' );
80
79
try {
81
80
$ this ->validateIndexerStatus ($ indexer );
81
+
82
+ $ output ->write ($ indexer ->getTitle () . ' index ' );
83
+
82
84
$ startTime = microtime (true );
83
85
$ indexerConfig = $ this ->getConfig ()->getIndexer ($ indexer ->getId ());
84
86
$ sharedIndex = $ indexerConfig ['shared_index ' ];
@@ -93,16 +95,19 @@ protected function execute(InputInterface $input, OutputInterface $output)
93
95
$ resultTime = microtime (true ) - $ startTime ;
94
96
95
97
$ output ->writeln (
96
- __ ('index has been rebuilt successfully in %time ' , ['time ' => gmdate ('H:i:s ' , $ resultTime )])
98
+ __ ('has been rebuilt successfully in %time ' , ['time ' => gmdate ('H:i:s ' , $ resultTime )])
97
99
);
98
100
$ returnValue = Cli::RETURN_SUCCESS ;
99
101
} catch (LocalizedException $ e ) {
100
- $ output ->writeln ($ e ->getMessage ());
102
+ $ output ->writeln (__ ( ' exception: %message ' , [ ' message ' => $ e ->getMessage ()] ));
101
103
} catch (\Exception $ e ) {
102
- $ output ->writeln ($ indexer -> getTitle () . ' indexer process unknown error: ' );
104
+ $ output ->writeln (' process unknown error: ' );
103
105
$ output ->writeln ($ e ->getMessage ());
106
+
107
+ $ output ->writeln ($ e ->getTraceAsString (), OutputInterface::VERBOSITY_DEBUG );
104
108
}
105
109
}
110
+
106
111
return $ returnValue ;
107
112
}
108
113
@@ -119,19 +124,17 @@ protected function getIndexers(InputInterface $input)
119
124
return $ indexers ;
120
125
}
121
126
122
- $ relatedIndexers = [];
123
- $ dependentIndexers = [];
127
+ $ relatedIndexers = [[]];
128
+ $ dependentIndexers = [[]];
129
+
124
130
foreach ($ indexers as $ indexer ) {
125
- $ relatedIndexers = array_merge (
126
- $ relatedIndexers ,
127
- $ this ->getRelatedIndexerIds ($ indexer ->getId ())
128
- );
129
- $ dependentIndexers = array_merge (
130
- $ dependentIndexers ,
131
- $ this ->getDependentIndexerIds ($ indexer ->getId ())
132
- );
131
+ array_push ($ relatedIndexers , $ this ->getRelatedIndexerIds ($ indexer ->getId ()));
132
+ array_push ($ dependentIndexers , $ this ->getDependentIndexerIds ($ indexer ->getId ()));
133
133
}
134
134
135
+ $ relatedIndexers = array_merge (...$ relatedIndexers );
136
+ $ dependentIndexers = array_merge (...$ dependentIndexers );
137
+
135
138
$ invalidRelatedIndexers = [];
136
139
foreach (array_unique ($ relatedIndexers ) as $ relatedIndexer ) {
137
140
if ($ allIndexers [$ relatedIndexer ]->isInvalid ()) {
@@ -161,15 +164,13 @@ protected function getIndexers(InputInterface $input)
161
164
*/
162
165
private function getRelatedIndexerIds (string $ indexerId )
163
166
{
164
- $ relatedIndexerIds = [];
167
+ $ relatedIndexerIds = [[] ];
165
168
foreach ($ this ->getDependencyInfoProvider ()->getIndexerIdsToRunBefore ($ indexerId ) as $ relatedIndexerId ) {
166
- $ relatedIndexerIds = array_merge (
167
- $ relatedIndexerIds ,
168
- [$ relatedIndexerId ],
169
- $ this ->getRelatedIndexerIds ($ relatedIndexerId )
170
- );
169
+ array_push ($ relatedIndexerIds , [$ relatedIndexerId ], $ this ->getRelatedIndexerIds ($ relatedIndexerId ));
171
170
}
172
171
172
+ $ relatedIndexerIds = array_merge (...$ relatedIndexerIds );
173
+
173
174
return array_unique ($ relatedIndexerIds );
174
175
}
175
176
@@ -181,19 +182,15 @@ private function getRelatedIndexerIds(string $indexerId)
181
182
*/
182
183
private function getDependentIndexerIds (string $ indexerId )
183
184
{
184
- $ dependentIndexerIds = [];
185
+ $ dependentIndexerIds = [[] ];
185
186
foreach (array_keys ($ this ->getConfig ()->getIndexers ()) as $ id ) {
186
187
$ dependencies = $ this ->getDependencyInfoProvider ()->getIndexerIdsToRunBefore ($ id );
187
188
if (array_search ($ indexerId , $ dependencies ) !== false ) {
188
- $ dependentIndexerIds = array_merge (
189
- $ dependentIndexerIds ,
190
- [$ id ],
191
- $ this ->getDependentIndexerIds ($ id )
192
- );
189
+ array_push ($ dependentIndexerIds , [$ id ], $ this ->getDependentIndexerIds ($ id ));
193
190
}
194
191
}
195
192
196
- return array_unique ($ dependentIndexerIds );
193
+ return array_unique (array_merge (... $ dependentIndexerIds) );
197
194
}
198
195
199
196
/**
0 commit comments