66
77use Phauthentic \CognitiveCodeAnalysis \Business \Churn \ChangeCounter \ChangeCounterFactory ;
88use Phauthentic \CognitiveCodeAnalysis \Business \Churn \ChurnCalculator ;
9+ use Phauthentic \CognitiveCodeAnalysis \Business \Churn \Report \ChurnReportFactory ;
10+ use Phauthentic \CognitiveCodeAnalysis \Business \Churn \Report \ChurnReportFactoryInterface ;
911use Phauthentic \CognitiveCodeAnalysis \Business \CodeCoverage \CodeCoverageFactory ;
1012use Phauthentic \CognitiveCodeAnalysis \Business \Cognitive \Baseline ;
1113use Phauthentic \CognitiveCodeAnalysis \Business \Cognitive \CognitiveMetricsCollector ;
1416use Phauthentic \CognitiveCodeAnalysis \Business \Cognitive \Events \ParserFailed ;
1517use Phauthentic \CognitiveCodeAnalysis \Business \Cognitive \Events \SourceFilesFound ;
1618use Phauthentic \CognitiveCodeAnalysis \Business \Cognitive \Parser ;
19+ use Phauthentic \CognitiveCodeAnalysis \Business \Cognitive \Report \CognitiveReportFactory ;
20+ use Phauthentic \CognitiveCodeAnalysis \Business \Cognitive \Report \CognitiveReportFactoryInterface ;
1721use Phauthentic \CognitiveCodeAnalysis \Business \Cognitive \ScoreCalculator ;
1822use Phauthentic \CognitiveCodeAnalysis \Business \MetricsFacade ;
1923use Phauthentic \CognitiveCodeAnalysis \Business \Utility \DirectoryScanner ;
@@ -62,6 +66,15 @@ public function __construct()
6266 }
6367
6468 private function registerServices (): void
69+ {
70+ $ this ->registerCoreServices ();
71+ $ this ->registerReportFactories ();
72+ $ this ->registerPresentationServices ();
73+ $ this ->registerUtilityServices ();
74+ $ this ->registerCommandHandlers ();
75+ }
76+
77+ private function registerCoreServices (): void
6578 {
6679 $ outputClass = getenv ('APP_ENV ' ) === 'test ' ? NullOutput::class : ConsoleOutput::class;
6780
@@ -83,27 +96,48 @@ private function registerServices(): void
8396 $ this ->containerBuilder ->register (ConfigService::class, ConfigService::class)
8497 ->setPublic (true );
8598
86- $ this ->containerBuilder ->register (ChurnTextRenderer::class, ChurnTextRenderer::class)
87- ->setArguments ([
88- new Reference (OutputInterface::class)
89- ])
99+ $ this ->containerBuilder ->register (Baseline::class, Baseline::class)
90100 ->setPublic (true );
91101
92- $ this ->containerBuilder ->register (CognitiveMetricTextRendererInterface::class, CognitiveMetricTextRenderer::class)
102+ $ this ->containerBuilder ->register (CognitiveMetricsSorter::class, CognitiveMetricsSorter::class)
103+ ->setPublic (true );
104+
105+ $ this ->containerBuilder ->register (CodeCoverageFactory::class, CodeCoverageFactory::class)
106+ ->setPublic (true );
107+ }
108+
109+ private function registerReportFactories (): void
110+ {
111+ $ this ->containerBuilder ->register (ChurnReportFactoryInterface::class, ChurnReportFactory::class)
93112 ->setArguments ([
94- new Reference (ConfigService::class)
113+ new Reference (ConfigService::class),
95114 ])
96115 ->setPublic (true );
97116
98- $ this ->containerBuilder ->register (Baseline::class, Baseline::class)
117+ $ this ->containerBuilder ->register (CognitiveReportFactoryInterface::class, CognitiveReportFactory::class)
118+ ->setArguments ([
119+ new Reference (ConfigService::class),
120+ ])
99121 ->setPublic (true );
122+ }
100123
101- $ this ->containerBuilder ->register (CognitiveMetricsSorter::class, CognitiveMetricsSorter::class)
124+ private function registerPresentationServices (): void
125+ {
126+ $ this ->containerBuilder ->register (ChurnTextRenderer::class, ChurnTextRenderer::class)
127+ ->setArguments ([
128+ new Reference (OutputInterface::class)
129+ ])
102130 ->setPublic (true );
103131
104- $ this ->containerBuilder ->register (CodeCoverageFactory::class, CodeCoverageFactory::class)
132+ $ this ->containerBuilder ->register (CognitiveMetricTextRendererInterface::class, CognitiveMetricTextRenderer::class)
133+ ->setArguments ([
134+ new Reference (ConfigService::class)
135+ ])
105136 ->setPublic (true );
137+ }
106138
139+ private function registerUtilityServices (): void
140+ {
107141 $ this ->containerBuilder ->register (Processor::class, Processor::class)
108142 ->setPublic (true );
109143
@@ -135,18 +169,23 @@ private function registerServices(): void
135169 new Reference (NodeTraverserInterface::class),
136170 ])
137171 ->setPublic (true );
172+ }
138173
174+ private function registerCommandHandlers (): void
175+ {
139176 $ this ->containerBuilder ->register (ChurnReportHandler::class, ChurnReportHandler::class)
140177 ->setArguments ([
141178 new Reference (MetricsFacade::class),
142179 new Reference (OutputInterface::class),
180+ new Reference (ChurnReportFactoryInterface::class),
143181 ])
144182 ->setPublic (true );
145183
146184 $ this ->containerBuilder ->register (CognitiveMetricsReportHandler::class, CognitiveMetricsReportHandler::class)
147185 ->setArguments ([
148186 new Reference (MetricsFacade::class),
149187 new Reference (OutputInterface::class),
188+ new Reference (CognitiveReportFactoryInterface::class),
150189 ])
151190 ->setPublic (true );
152191 }
@@ -213,6 +252,8 @@ private function registerMetricsFacade(): void
213252 new Reference (ConfigService::class),
214253 new Reference (ChurnCalculator::class),
215254 new Reference (ChangeCounterFactory::class),
255+ new Reference (ChurnReportFactoryInterface::class),
256+ new Reference (CognitiveReportFactoryInterface::class),
216257 ])
217258 ->setPublic (true );
218259 }
0 commit comments