Description
Hi @ondrejmirtes,
After the merge of 012305d
(cf #233)
The return type of Request::getSession
is Session instead of SessionInterface.
This was not really true be could be considered as a good help for developers since
- it was almost always true
- there was no easy way to check for the
getFlashBag
method.
-
This is not the case after the merge of symfony/symfony@c7b5802 in Symfony 6.2.
Now, it's possible to do a$request->getSession() instanceof FlashBagAwareSessionInterface
check.
And, because of the stub, currently the stub is reported as always true which is not true... -
Currently,
RequestStack::getSession
is returningSessionInterface
whenRequest::getSession()
is returningSession
.
This should be fixed by reverting the stub for request, or adding a stub for RequestStack. -
The Request stub is loaded dynamically with the following extension https://github.com/phpstan/phpstan-symfony/blob/1.2.x/src/Symfony/InputBagStubFilesExtension.php#L19
which means that
- For user of SF <5.1,
$request::getSession
returns a SessionInterface. - For user of SF >=5.1,
$request::getSession
returns a Session.
Not sure this was expected
I'd like to improve the situation, what's your point of view about this ?
The easiest thing to do would be at least to introduce a stub for RequestStack, but there is maybe something better to do ?