Como especificar corretamente o tipo de array de objetos no PHPDoc para sugestões da IDE?
Olá a todos! Sou um desenvolvedor PHP iniciante e me deparei com um problema que parece incomodar muitos. Quando escrevo código, quero muito que minha IDE (PhpStorm) sugira métodos e propriedades de objetos, especialmente quando trabalho com arrays.
Por exemplo, tenho uma classe `User` com métodos `getName()` e `getEmail()`. Crio uma função que retorna um array de usuários:
```php
class User {
public function getName(): string { return 'John'; }
public function getEmail(): string { return 'john@example.com'; }
}
/**
* @return array
*/
function getUsers(): array {
return [new User(), new User()];
}
$users = getUsers();
foreach ($users as $user) {
// Aqui a IDE não sabe que $user é um objeto User
echo $user->getName(); // Sem autocomplete!
}
```
O problema é que quando escrevo `$user->getName()`, minha IDE não oferece autocomplete. Ela vê `$user` como `mixed`, porque no PHPDoc eu especifiquei apenas `@return array`. Tentei escrever `@