Непонятная ошибка выдаваемая phpstan-ом

128
23 декабря 2021, 13:30

Решил я подключить к своему проекту на PHP 7.4 phpstan.
Анализ моего кода командой

./vendor/bin/phpstan analyse --paths-file=./phpstan.dist --level=max

приводит к ошибке

------  ---------------------------------------------------------------------- 
 Line    src/Entity/User.php                                                   
------  ---------------------------------------------------------------------- 
 11      Property App\Entity\User::$roles type has no value type specified in  
         iterable type array.                                                  
------  ---------------------------------------------------------------------- 

Проблемный код:

class User implements UserInterface
{
    ...
    private array $roles = [];
    ...
}

Помогите, пожалуйста, выяснить проблему.

Answer 1

Анализатор вам говорит, что не может определить тип элементов массива.

Т.к. PHP не позволяет объявлять типизированные массивы, то нужно воспользоваться объявлением подсказки

class User implements UserInterface
{
    ...
    /**
     * @var RoleType[]
     */
    private array $roles = [];
    ...
}

(обратите внимание, что комментарий начинается с трех символов /**)

Вместо RoleType подставьте тот тип элементов, который у вас используется

READ ALSO
Вопрос по поведению current() в PHP

Вопрос по поведению current() в PHP

Имеем простой код:

181
Работа с несколькими моделями

Работа с несколькими моделями

Я новичок в YII2Помогите пожалуйста решить проблему с редактированием данных пользователя взятых из нескольких моделей

229
Помощь с ботом ВК (php)

Помощь с ботом ВК (php)

Использую CallBackAPI

101