Skip to content

Commit cd0f3e4

Browse files
authored
Merge pull request #21 from slavvka/fixes
Various fixes
2 parents b487edf + 3f72c61 commit cd0f3e4

File tree

6 files changed

+23
-37
lines changed

6 files changed

+23
-37
lines changed

src/ClassHierarchy/DependencyInspectionVisitor.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,9 @@ private function fetchStmtsNodes(ClassLike $node): array
164164
if ($stmt instanceof ClassMethod) {
165165
$methodList[$stmt->name] = $stmt;
166166
} elseif ($stmt instanceof Property) {
167-
$propertyList[$stmt->name] = $stmt;
167+
foreach ($stmt->props as $prop) {
168+
$propertyList[$prop->name] = $prop;
169+
}
168170
}
169171
}
170172

src/Console/Command/CompareSourceCommand.php

+9-5
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,15 @@ protected function execute(InputInterface $input, OutputInterface $cliOutput)
118118
$versionReport = $semanticVersionChecker->loadVersionReport();
119119
$changedFiles = $semanticVersionChecker->loadChangedFiles();
120120

121+
foreach ($changedFiles as &$file) {
122+
if (substr($file, 0, strlen($sourceBeforeDir)) == $sourceBeforeDir) {
123+
$file = substr($file, strlen($sourceBeforeDir));
124+
} elseif (substr($file, 0, strlen($sourceAfterDir)) == $sourceAfterDir) {
125+
$file = substr($file, strlen($sourceAfterDir));
126+
}
127+
}
128+
$changedFiles = array_unique($changedFiles);
129+
121130
// Log report output
122131
$logOutputStream = new StreamOutput(fopen($logOutputPath, 'w+'));
123132

@@ -142,11 +151,6 @@ protected function execute(InputInterface $input, OutputInterface $cliOutput)
142151
'<td><button class="btn-danger collapsible">Details</button><div class="content"><ul>'
143152
);
144153
foreach ($changedFiles as $file) {
145-
if (substr($file, 0, strlen($sourceBeforeDir)) == $sourceBeforeDir) {
146-
$file = substr($file, strlen($sourceBeforeDir));
147-
} elseif (substr($file, 0, strlen($sourceAfterDir)) == $sourceAfterDir) {
148-
$file = substr($file, strlen($sourceAfterDir));
149-
}
150154
$logOutputStream->writeln('<li>' . $file . '</li>');
151155
}
152156
$logOutputStream->writeln('</ul></div></td></tr>');

src/DbSchemaReporter.php

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public function output(OutputInterface $output)
2525

2626
// custom report types
2727
$this->outputReport($output, $this->report, 'database');
28+
$this->outputReport($output, $this->report, 'layout');
2829
$this->outputReport($output, $this->report, 'di');
2930
$this->outputReport($output, $this->report, 'system');
3031
$this->outputReport($output, $this->report, 'xsd');

src/Filter/SourceFilter.php

+4-26
Original file line numberDiff line numberDiff line change
@@ -23,44 +23,22 @@ class SourceFilter
2323
public function filter(array &$filesBefore, array &$filesAfter): int
2424
{
2525
$hashedBefore = [];
26-
$jsonHashedBefore = [];
2726
foreach ($filesBefore as $fileBefore) {
28-
if ($this->isJson($fileBefore)) {
29-
$jsonHashedBefore[] = $fileBefore;
30-
} else {
31-
$hashedBefore[$this->getHash($fileBefore)] = $fileBefore;
32-
}
27+
$hashedBefore[$this->getHash($fileBefore)] = $fileBefore;
3328
}
3429

3530
$hashedAfter = [];
36-
$jsonHashedAfter = [];
3731
foreach ($filesAfter as $fileAfter) {
38-
if ($this->isJson($fileAfter)) {
39-
$jsonHashedAfter[] = $fileAfter;
40-
} else {
41-
$hashedAfter[$this->getHash($fileAfter)] = $fileAfter;
42-
}
32+
$hashedAfter[$this->getHash($fileAfter)] = $fileAfter;
4333
}
4434

4535
$intersection = array_intersect_key($hashedBefore, $hashedAfter);
46-
$filesBefore = array_merge(array_values(array_diff_key($hashedBefore, $intersection)), $jsonHashedBefore);
47-
$filesAfter = array_merge(array_values(array_diff_key($hashedAfter, $intersection)), $jsonHashedAfter);
36+
$filesBefore = array_values(array_diff_key($hashedBefore, $intersection));
37+
$filesAfter = array_values(array_diff_key($hashedAfter, $intersection));
4838

4939
return count($intersection);
5040
}
5141

52-
/**
53-
* Checks if file has JSON extension
54-
*
55-
* @param string $file
56-
*
57-
* @return bool
58-
*/
59-
private function isJson(string $file): bool
60-
{
61-
return (bool)preg_match('/^.*.json/', $file);
62-
}
63-
6442
/**
6543
* Returns the an sha1 file hash to filter not changed files.
6644
*

src/ReportBuilder.php

+5-5
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,11 @@ protected function buildReport()
131131
$sourceBeforeFiles = $fileIterator->findFromString($this->sourceBeforeDir, '', '');
132132
$sourceAfterFiles = $fileIterator->findFromString($this->sourceAfterDir, '', '');
133133

134+
foreach ($this->getFilters($this->sourceBeforeDir, $this->sourceAfterDir) as $filter) {
135+
// filters modify arrays by reference
136+
$filter->filter($sourceBeforeFiles, $sourceAfterFiles);
137+
}
138+
134139
//let static analyzer build a complete dependency graph
135140
$staticAnalyzer = (new StaticAnalyzerFactory())->create();
136141
$staticAnalyzer->analyse($sourceBeforeFiles);
@@ -141,11 +146,6 @@ protected function buildReport()
141146
$scannerBefore = new ScannerRegistry($scannerRegistryFactory->create($dependencyMap));
142147
$scannerAfter = new ScannerRegistry($scannerRegistryFactory->create($dependencyMap));
143148

144-
foreach ($this->getFilters($this->sourceBeforeDir, $this->sourceAfterDir) as $filter) {
145-
// filters modify arrays by reference
146-
$filter->filter($sourceBeforeFiles, $sourceAfterFiles);
147-
}
148-
149149
foreach ($sourceBeforeFiles as $file) {
150150
$scannerBefore->scanFile($file);
151151
}

src/Reporter/HtmlDbSchemaReporter.php

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ public function output(OutputInterface $output)
5454
'interface',
5555
'trait',
5656
'database',
57+
'layout',
5758
'di',
5859
'system',
5960
'xsd',

0 commit comments

Comments
 (0)