|
10 | 10 | use Steevanb\PhpTypedArray\ScalarArray\StringArray; |
11 | 11 | use Symfony\Component\Console\Input\ArgvInput; |
12 | 12 |
|
13 | | -require $_SERVER['COMPOSER_HOME'] . '/vendor/autoload.php'; |
14 | 13 | require dirname(__DIR__, 2) . '/vendor/autoload.php'; |
15 | 14 |
|
16 | | -function createPhpstanProcesses(): ProcessInterfaceArray |
| 15 | +function getAvailableSymfonyVersions(): StringArray |
17 | 16 | { |
18 | | - $phpVersions = new StringArray(['8.1', '8.2']); |
| 17 | + $return = new StringArray(); |
| 18 | + foreach (new StringArray(['6.1', '6.2', '6.3']) as $symfonyVersion) { |
| 19 | + $return[] = $symfonyVersion; |
| 20 | + } |
| 21 | + |
| 22 | + return $return; |
| 23 | +} |
| 24 | + |
| 25 | +function createPhpstanProcesses(string $phpVersion = null, string $symfonyVersion = null): ProcessInterfaceArray |
| 26 | +{ |
| 27 | + $phpVersions = new StringArray(is_string($phpVersion) ? [$phpVersion] : ['8.1', '8.2']); |
19 | 28 |
|
20 | 29 | $return = new ProcessInterfaceArray(); |
21 | 30 | foreach ($phpVersions as $loopPhpVersion) { |
22 | | - $return[] = createPhpstanProcess($loopPhpVersion); |
| 31 | + $symfonyVersions = is_string($symfonyVersion) |
| 32 | + ? [$symfonyVersion] |
| 33 | + : getAvailableSymfonyVersions()->toArray(); |
| 34 | + |
| 35 | + foreach ($symfonyVersions as $loopSymfonyVersion) { |
| 36 | + $return[] = createPhpstanProcess($loopPhpVersion, $loopSymfonyVersion); |
| 37 | + } |
23 | 38 | } |
24 | 39 |
|
25 | 40 | return $return; |
26 | 41 | } |
27 | 42 |
|
28 | | -function createPhpstanProcess(string $phpVersion): Process |
| 43 | +function createPhpstanProcess(string $phpVersion, string $symfonyVersion): Process |
29 | 44 | { |
30 | | - return (new Process([__DIR__ . '/phpstan', '--php=' . $phpVersion])) |
31 | | - ->setName('phpstan --php=' . $phpVersion); |
| 45 | + return (new Process([__DIR__ . '/phpstan', '--php=' . $phpVersion, '--symfony=' . $symfonyVersion])) |
| 46 | + ->setName('phpstan --php=' . $phpVersion . ' --symfony=' . $symfonyVersion); |
| 47 | +} |
| 48 | + |
| 49 | +$phpVersion = null; |
| 50 | +$symfonyVersion = null; |
| 51 | +$applicationArgv = new StringArray(); |
| 52 | +foreach ($argv as $arg) { |
| 53 | + if (str_starts_with($arg, '--php=')) { |
| 54 | + $phpVersion = substr($arg, 6); |
| 55 | + } elseif (str_starts_with($arg, '--symfony=')) { |
| 56 | + $symfonyVersion = substr($arg, 10); |
| 57 | + } else { |
| 58 | + $applicationArgv[] = $arg; |
| 59 | + } |
32 | 60 | } |
33 | 61 |
|
34 | 62 | (new ParallelProcessesApplication()) |
35 | | - ->addProcesses(createPhpstanProcesses()) |
36 | | - ->run(new ArgvInput($argv)); |
| 63 | + ->addProcesses(createPhpstanProcesses($phpVersion, $symfonyVersion)) |
| 64 | + ->run(new ArgvInput($applicationArgv->toArray())); |
0 commit comments