7
7
use Exception ;
8
8
use InvalidArgumentException ;
9
9
use Kauffinger \Codemap \Config \CodemapConfig ;
10
+ use Kauffinger \Codemap \Dto \CodemapFileDto ;
10
11
use Kauffinger \Codemap \Enum \PhpVersion ;
11
12
use Kauffinger \Codemap \Formatter \TextCodemapFormatter ;
12
13
use Kauffinger \Codemap \Generator \CodemapGenerator ;
@@ -59,12 +60,17 @@ protected function handle(): int
59
60
60
61
$ phpVersion = $ this ->getPhpVersion ($ config );
61
62
63
+ /* @phpstan-ignore-next-line */
62
64
$ codemapResults = $ this ->generateCodemap ($ scanPaths , $ phpVersion );
63
65
64
66
$ formatter = new TextCodemapFormatter ;
65
67
$ formattedOutput = $ formatter ->format ($ codemapResults );
66
68
67
69
$ outputFile = $ this ->option ('output ' );
70
+ if (! is_string ($ outputFile )) {
71
+ throw new RuntimeException ('Invalid output file path. ' );
72
+ }
73
+
68
74
$ this ->writeOutput ($ formattedOutput , $ outputFile );
69
75
70
76
return Command::SUCCESS ;
@@ -133,6 +139,10 @@ private function getPhpVersion(CodemapConfig $config): ?PhpVersion
133
139
{
134
140
$ phpVersionString = $ this ->option ('php-version ' );
135
141
if ($ phpVersionString ) {
142
+ if (! is_string ($ phpVersionString ) && ! is_int ($ phpVersionString )) {
143
+ throw new InvalidArgumentException ('Invalid PHP version: ' .$ phpVersionString );
144
+ }
145
+
136
146
$ phpVersion = PhpVersion::tryFrom ($ phpVersionString );
137
147
if (! $ phpVersion instanceof PhpVersion) {
138
148
throw new InvalidArgumentException ('Invalid PHP version: ' .$ phpVersionString );
@@ -144,6 +154,10 @@ private function getPhpVersion(CodemapConfig $config): ?PhpVersion
144
154
return $ config ->getConfiguredPhpVersion ();
145
155
}
146
156
157
+ /**
158
+ * @param string[] $scanPaths
159
+ * @return array<string, CodemapFileDto>
160
+ */
147
161
private function generateCodemap (array $ scanPaths , ?PhpVersion $ phpVersion ): array
148
162
{
149
163
$ codemapGenerator = new CodemapGenerator ;
0 commit comments