Skip to content

Commit

Permalink
Use stubfile extension for PasswordUpgraderInterface
Browse files Browse the repository at this point in the history
  • Loading branch information
VincentLanglet committed Mar 30, 2023
1 parent e0823d3 commit db81b18
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 5 deletions.
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"require": {
"php": "^7.2 || ^8.0",
"ext-simplexml": "*",
"phpstan/phpstan": "^1.9.4"
"phpstan/phpstan": "^1.9.18"
},
"conflict": {
"symfony/framework-bundle": "<3.0"
Expand Down
6 changes: 4 additions & 2 deletions extension.neon
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,6 @@ parameters:
- stubs/Symfony/Component/Security/Core/Authentication/Token/TokenInterface.stub
- stubs/Symfony/Component/Security/Core/Authorization/Voter/Voter.stub
- stubs/Symfony/Component/Security/Core/Authorization/Voter/VoterInterface.stub
- stubs/Symfony/Component/Security/Core/User/PasswordAuthenticatedUserInterface.stub
- stubs/Symfony/Component/Security/Core/User/PasswordUpgraderInterface.stub
- stubs/Symfony/Component/Serializer/Encoder/ContextAwareDecoderInterface.stub
- stubs/Symfony/Component/Serializer/Encoder/DecoderInterface.stub
- stubs/Symfony/Component/Serializer/Encoder/EncoderInterface.stub
Expand Down Expand Up @@ -298,6 +296,10 @@ services:
class: PHPStan\Symfony\InputBagStubFilesExtension
tags:
- phpstan.stubFilesExtension
-
class: PHPStan\Symfony\PasswordAuthenticatedUserStubFilesExtension
tags:
- phpstan.stubFilesExtension

# FormInterface::getErrors() return type
-
Expand Down
17 changes: 15 additions & 2 deletions src/Symfony/InputBagStubFilesExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,28 @@

namespace PHPStan\Symfony;

use PHPStan\BetterReflection\Reflector\Exception\IdentifierNotFound;
use PHPStan\BetterReflection\Reflector\Reflector;
use PHPStan\PhpDoc\StubFilesExtension;
use function class_exists;

class InputBagStubFilesExtension implements StubFilesExtension
{

/** @var Reflector */
private $reflector;

public function __construct(
Reflector $reflector
)
{
$this->reflector = $reflector;
}

public function getFiles(): array
{
if (!class_exists('Symfony\Component\HttpFoundation\InputBag')) {
try {
$this->reflector->reflectClass('Symfony\Component\HttpFoundation\InputBag');
} catch (IdentifierNotFound $e) {
return [];
}

Expand Down
36 changes: 36 additions & 0 deletions src/Symfony/PasswordAuthenticatedUserStubFilesExtension.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
<?php declare(strict_types = 1);

namespace PHPStan\Symfony;

use PHPStan\BetterReflection\Reflector\Exception\IdentifierNotFound;
use PHPStan\BetterReflection\Reflector\Reflector;
use PHPStan\PhpDoc\StubFilesExtension;

class PasswordAuthenticatedUserStubFilesExtension implements StubFilesExtension
{

/** @var Reflector */
private $reflector;

public function __construct(
Reflector $reflector
)
{
$this->reflector = $reflector;
}

public function getFiles(): array
{
try {
$this->reflector->reflectClass('Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface');
} catch (IdentifierNotFound $e) {
return [];
}

return [
__DIR__ . '/../../stubs/Symfony/Component/Security/Core/User/PasswordAuthenticatedUserInterface.stub',
__DIR__ . '/../../stubs/Symfony/Component/Security/Core/User/PasswordUpgraderInterface.stub',
];
}

}

0 comments on commit db81b18

Please sign in to comment.