Skip to content

Commit 864df93

Browse files
Stephan Wentzpl-github
authored andcommitted
feat: Add support for phpstan 2.0, drop support for older versions.
BREAKING CHANGE: phpstan 1.x is not longer supported
1 parent 01eb253 commit 864df93

File tree

7 files changed

+21
-25
lines changed

7 files changed

+21
-25
lines changed

.github/workflows/tests.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
runs-on: ubuntu-latest
1212
strategy:
1313
matrix:
14-
php-versions: ['8.1', '8.2', '8.3']
14+
php-versions: ['8.3']
1515

1616
name: Tests on PHP ${{ matrix.php-versions }}
1717
steps:
@@ -41,7 +41,7 @@ jobs:
4141
- uses: actions/checkout@master
4242
- uses: shivammathur/setup-php@v2
4343
with:
44-
php-version: 8.1
44+
php-version: 8.3
4545
coverage: none
4646
- name: Load dependencies from cache
4747
id: composer-cache
@@ -50,9 +50,9 @@ jobs:
5050
- uses: actions/cache@v4
5151
with:
5252
path: ${{ steps.composer-cache.outputs.dir }}
53-
key: ${{ runner.os }}-php8.1-lowest-composer-${{ hashFiles('**/composer.json') }}
53+
key: ${{ runner.os }}-php8.3-lowest-composer-${{ hashFiles('**/composer.json') }}
5454
restore-keys: |
55-
${{ runner.os }}-php8.1-lowest-composer-
55+
${{ runner.os }}-php8.3-lowest-composer-
5656
- run: composer update --no-progress --no-suggest --prefer-lowest
5757
- run: php vendor/bin/phpunit
5858

composer.json

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,16 @@
1717
],
1818
"minimum-stability": "stable",
1919
"require": {
20-
"php": "^8.1",
20+
"php": "^8.3",
2121
"nette/utils": "^4.0",
2222
"nikic/php-parser": "^4.3|^5.0",
23-
"phpstan/phpstan": "^1.0"
23+
"phpstan/phpstan": "^2.0"
2424
},
2525
"require-dev": {
2626
"brainbits/phpcs-standard": "^7.0",
2727
"php-coveralls/php-coveralls": "^2.0",
28-
"phpstan/phpstan-php-parser": "^1.0",
29-
"phpstan/phpstan-phpunit": "^1.0",
30-
"phpunit/phpunit": "^10.5"
28+
"phpstan/phpstan-phpunit": "^2.0",
29+
"phpunit/phpunit": "^11.0"
3130
},
3231
"scripts": {
3332
"check-all": [

phpcs.xml.dist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@
2121
<!-- arg value="sp"/ -->
2222

2323
<!-- Use brainbits coding standard -->
24-
<rule ref="BrainbitsCodingStandardTest">
24+
<rule ref="Brainbits">
2525
</rule>
2626
</ruleset>

phpstan.neon.dist

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ includes:
22
- phar://phpstan.phar/conf/config.levelmax.neon
33
- phar://phpstan.phar/conf/bleedingEdge.neon
44
- vendor/phpstan/phpstan-phpunit/extension.neon
5-
- vendor/phpstan/phpstan-php-parser/extension.neon
65
- rules.neon
76

87
parameters:

src/CoversClassExistsRule.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
use PhpParser\Node\Scalar\String_;
1111
use PhpParser\Node\Stmt\Class_;
1212
use PHPStan\Analyser\Scope;
13-
use PHPStan\Broker\Broker;
13+
use PHPStan\Reflection\ReflectionProvider;
1414
use PHPStan\Rules\Rule;
1515
use PHPStan\Rules\RuleError;
1616
use PHPStan\Rules\RuleErrorBuilder;
@@ -28,7 +28,7 @@ final class CoversClassExistsRule implements Rule
2828
/** @var bool[] */
2929
private array $alreadyParsedDocComments = [];
3030

31-
public function __construct(private Broker $broker)
31+
public function __construct(private ReflectionProvider $reflectionProvider)
3232
{
3333
}
3434

@@ -74,7 +74,7 @@ public function processNodeAttribute(Class_ $node, Scope $scope): array
7474
assert($arg->value->class instanceof Name);
7575

7676
$className = (string) $arg->value->class;
77-
if ($this->broker->hasClass($className)) {
77+
if ($this->reflectionProvider->hasClass($className)) {
7878
continue;
7979
}
8080

@@ -85,7 +85,7 @@ public function processNodeAttribute(Class_ $node, Scope $scope): array
8585

8686
if ($arg->value instanceof String_) {
8787
$className = (string) $arg->value->value;
88-
if ($this->broker->hasClass($className)) {
88+
if ($this->reflectionProvider->hasClass($className)) {
8989
continue;
9090
}
9191

@@ -135,7 +135,7 @@ public function processNodeAnnotation(Class_ $node, Scope $scope): array
135135
}
136136
}
137137

138-
if ($this->broker->hasClass($matches['className'])) {
138+
if ($this->reflectionProvider->hasClass($matches['className'])) {
139139
continue;
140140
}
141141

tests/CoversClassExistsRuleTest.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@
77
use BrainbitsPhpStan\CoversClassExistsRule;
88
use PHPStan\Rules\Rule;
99
use PHPStan\Testing\RuleTestCase;
10+
use PHPUnit\Framework\Attributes\CoversClass;
1011

11-
/**
12-
* @covers \BrainbitsPhpStan\CoversClassExistsRule
13-
* @extends RuleTestCase<CoversClassExistsRule>
14-
*/
12+
/** @extends RuleTestCase<CoversClassExistsRule> */
13+
#[CoversClass(CoversClassExistsRule::class)]
1514
final class CoversClassExistsRuleTest extends RuleTestCase
1615
{
1716
public function testAttributeRule(): void
@@ -31,7 +30,7 @@ public function testAnnotationRule(): void
3130

3231
protected function getRule(): Rule
3332
{
34-
$broker = $this->createBroker();
33+
$broker = self::createReflectionProvider();
3534

3635
return new CoversClassExistsRule($broker);
3736
}

tests/CoversClassPresentRuleTest.php

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@
77
use BrainbitsPhpStan\CoversClassPresentRule;
88
use PHPStan\Rules\Rule;
99
use PHPStan\Testing\RuleTestCase;
10+
use PHPUnit\Framework\Attributes\CoversClass;
1011

11-
/**
12-
* @covers \BrainbitsPhpStan\CoversClassPresentRule
13-
* @extends RuleTestCase<CoversClassPresentRule>
14-
*/
12+
/** @extends RuleTestCase<CoversClassPresentRule> */
13+
#[CoversClass(CoversClassPresentRule::class)]
1514
final class CoversClassPresentRuleTest extends RuleTestCase
1615
{
1716
public function testAnnotationWithoutUnitRule(): void

0 commit comments

Comments
 (0)