PHPStan не распознает спецификацию универсального типаPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 PHPStan не распознает спецификацию универсального типа

Сообщение Anonymous »

PHPStan не распознает мою спецификацию типа в блоке документации, предшествующем методу.
Вот код:

Код: Выделить всё

/**
* Process (resize and save) all versions of an uploaded file
*
* @param UploadedFileInterface   $file   The uploaded file.
* @param-out TypedArray $versionsData
*                                        A reference to a typed array of VersionData objects
*                                        Paths are relative to the base photo path.
* @param-out string              $error  An error message if one was encountered.
*
* @return bool
*/
public function processAllVersions(UploadedFileInterface $file, TypedArray &$versionsData, string &$error): bool
Я получаю сообщение об ошибке в строке public..., что «Метод Api\Helpers\Image\Processor::processAllVersions() имеет параметр $versionsData с универсальным классом Api\Helpers\TypedArray, но не указывает его типы: TKey, TValue"

Код: Выделить всё

TypedArray
определяется и комментируется следующим образом:

Код: Выделить всё

/**
* Implements, as much as possible, a typed array.
*
* @template TKey
* @template TValue
* @implements ArrayAccess
* @implements Iterator

*/
class TypedArray implements ArrayAccess, Countable, Iterator, JsonSerializable
Я использовал его в другом месте своего проекта, отлично определяя ключ и значение.
Думаю, я очень сильно определяюсь с типом(

Код: Выделить всё

int, VersionData
— VersionData — это класс в том же пространстве имен). Если я изменю тип значения на «строку», я получу последующие ошибки, поэтому очевидно, что по крайней мере часть PHPStan читает это объявление.
Что мне не хватает?

Подробнее здесь: https://stackoverflow.com/questions/792 ... neric-type
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»