66
77use Bakame \Stackwatch \Exporter \ConsoleExporter ;
88use Bakame \Stackwatch \Exporter \LeaderPrinter ;
9- use Bakame \Stackwatch \Metrics ;
109use Bakame \Stackwatch \Report ;
10+ use Bakame \Stackwatch \Translator ;
1111use Throwable ;
1212
13- /**
14- * @phpstan-import-type MetricsHumanReadable from Metrics
15- */
1613final class ConsoleFormatter implements Formatter
1714{
1815 public function __construct (
1916 public readonly ConsoleExporter $ exporter ,
2017 public readonly LeaderPrinter $ leaderPrinter = new LeaderPrinter (),
2118 public readonly Feature $ dryRun = Feature::Disabled,
19+ public readonly Translator $ translator = new Translator (),
2220 ) {
2321 }
2422
@@ -43,36 +41,9 @@ public function format(iterable $unitOfWorks): void
4341 continue ;
4442 }
4543
46- /** @var MetricsHumanReadable $data */
47- $ data = $ stats ->forHuman ();
48- $ this ->exporter ->output ->writeln ($ this ->leaderPrinter ->render (self ::exchangeKeys ($ data )));
44+ $ data = $ this ->leaderPrinter ->render ($ this ->translator ->translateArrayKeys ($ stats ->forHuman ())); /* @phpstan-ignore-line */
45+ $ this ->exporter ->output ->writeln ($ data );
4946 $ this ->exporter ->output ->writeln ('' );
5047 }
5148 }
52-
53- /**
54- * @param MetricsHumanReadable $metrics
55- *
56- * @return array<string, string>
57- */
58- private static function exchangeKeys (array $ metrics ): array
59- {
60- static $ humanKeys = [
61- 'cpu_time ' => 'CPU Time ' ,
62- 'memory_usage ' => 'Memory Usage ' ,
63- 'real_memory_usage ' => 'Real Memory Usage ' ,
64- 'peak_memory_usage ' => 'Peak Memory Usage ' ,
65- 'real_peak_memory_usage ' => 'Real Peak Memory Usage ' ,
66- 'execution_time ' => 'Execution Time ' ,
67- ];
68-
69- $ humans = [];
70- foreach ($ metrics as $ key => $ metric ) {
71- /** @var string $humanKey */
72- $ humanKey = $ humanKeys [$ key ] ?? $ key ;
73- $ humans [ $ humanKey ] = $ metric ;
74- }
75-
76- return $ humans ;
77- }
7849}
0 commit comments