Description
Hi All,
I encountered an issue where PHPStan threw an incorrect error regarding method return type declaration. Here's the scenario:
Problem:
I have a method getData() in my codebase which fetches data from the database and returns an array of associative arrays. The return type declaration of this method is specified accurately. However, PHPStan still throws this error suggesting that the return type is incorrect.
Method
App\Repository\FakeRepository::getData()
should return array<array{key1: string, key2: string, key3: string,
key4: int, key5: int}> but returns array.
/**
* @return array<array{
* "key1": string,
* "key2": string,
* "key3": string,
* "key4": int,
* "key5": int
* }>
*/
public function getData(): array
{
$result = $this->createQueryBuilder('a')
->select(.....)
->where('a.status = :validated')
->groupBy(.....)
->setParameter('validated', Status::VALIDATED);
return $result
->getQuery()
->getArrayResult();
}
Additional Information:
"php": ">=8.3",
"phpstan/extension-installer": "^1.3.1",
"phpstan/phpstan": "^1.10.47",
"phpstan/phpstan-deprecation-rules": "^1.1.4",
"phpstan/phpstan-doctrine": "^1.3.53",
"phpstan/phpstan-phpunit": "^1.3.15",
"phpstan/phpstan-symfony": "^1.3.5",
Thank you for your attention to this matter. Please let me know if you need any further information or clarification.