Skip to content

Commit f3c5a96

Browse files
wip
1 parent 55dc303 commit f3c5a96

1 file changed

Lines changed: 56 additions & 20 deletions

File tree

src/CLI/Runner.php

Lines changed: 56 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)