@@ -48,26 +48,15 @@ public function check(
4848 ParsingErrors $ parsingErrors ,
4949 bool $ stopOnFailure ,
5050 ): void {
51- // first steo: collect all files to parse
52- $ filesToParse = new FilesToParse ();
53- /** @var SplFileInfo $file */
54- foreach ($ classSetRule ->getClassSet () as $ file ) {
55- $ filesToParse ->add ($ file );
56- }
57-
58- // second step: parse all files and collect results
59- $ parsedFiles = new ParsedFiles ();
60- /** @var SplFileInfo $file */
61- foreach ($ filesToParse as $ file ) {
62- $ progress ->startParsingFile ($ file ->getRelativePathname ());
63-
64- $ result = $ fileParser ->parse ($ file ->getContents (), $ file ->getRelativePathname ());
65-
66- $ parsedFiles ->add ($ file ->getRelativePathname (), $ result );
67-
68- $ progress ->endParsingFile ($ file ->getRelativePathname ());
69- }
51+ }
7052
53+ public function checkRulesOnParsedFiles (
54+ ClassSetRules $ classSetRule ,
55+ ParsedFiles $ parsedFiles ,
56+ Violations $ violations ,
57+ ParsingErrors $ parsingErrors ,
58+ bool $ stopOnFailure ,
59+ ): void {
7160 /** @var SplFileInfo $file */
7261 foreach ($ classSetRule ->getClassSet () as $ file ) {
7362 $ result = $ parsedFiles ->get ($ file ->getRelativePathname ());
@@ -97,6 +86,36 @@ public function check(
9786 }
9887 }
9988
89+ protected function collectFilesToParse (ClassSetRules $ classSetRule ): FilesToParse
90+ {
91+ $ filesToParse = new FilesToParse ();
92+
93+ /** @var SplFileInfo $file */
94+ foreach ($ classSetRule ->getClassSet () as $ file ) {
95+ $ filesToParse ->add ($ file );
96+ }
97+
98+ return $ filesToParse ;
99+ }
100+
101+ protected function collectParsedFiles (FilesToParse $ filesToParse , Parser $ fileParser , Progress $ progress ): ParsedFiles
102+ {
103+ $ parsedFiles = new ParsedFiles ();
104+
105+ /** @var SplFileInfo $file */
106+ foreach ($ filesToParse as $ file ) {
107+ $ progress ->startParsingFile ($ file ->getRelativePathname ());
108+
109+ $ result = $ fileParser ->parse ($ file ->getContents (), $ file ->getRelativePathname ());
110+
111+ $ parsedFiles ->add ($ file ->getRelativePathname (), $ result );
112+
113+ $ progress ->endParsingFile ($ file ->getRelativePathname ());
114+ }
115+
116+ return $ parsedFiles ;
117+ }
118+
100119 protected function doRun (Config $ config , Progress $ progress ): array
101120 {
102121 $ violations = new Violations ();
@@ -112,7 +131,24 @@ protected function doRun(Config $config, Progress $progress): array
112131 $ progress ->startFileSetAnalysis ($ classSetRule ->getClassSet ());
113132
114133 try {
115- $ this ->check ($ classSetRule , $ progress , $ fileParser , $ violations , $ parsingErrors , $ config ->isStopOnFailure ());
134+ // first step: collect all files to parse
135+ $ filesToParse = $ this ->collectFilesToParse ($ classSetRule );
136+
137+ // second step: parse all files and collect results
138+ $ parsedFiles = $ this ->collectParsedFiles (
139+ $ filesToParse ,
140+ $ fileParser ,
141+ $ progress
142+ );
143+
144+ // third step: check all rules on all files
145+ $ this ->checkRulesOnParsedFiles (
146+ $ classSetRule ,
147+ $ parsedFiles ,
148+ $ violations ,
149+ $ parsingErrors ,
150+ $ config ->isStopOnFailure ()
151+ );
116152 } catch (FailOnFirstViolationException $ e ) {
117153 break ;
118154 } finally {
0 commit comments