Size: a a a

2021 January 06

ИЛ

Иван Лещёв in PHP
где ж числа, если две строки
источник

ИЛ

Иван Лещёв in PHP
'0' и  '3'
источник

А

Артём in PHP
Alexey
Прочитал много раз, цифры подставляются.
https://t.me/phpGeeksJunior — проходим, не задерживаемся
источник

A

Alexey in PHP
Благодарю, извиняюсь за беспокойство.
источник

NS

Ni Shi in PHP
кто нибудь может подсказать по работе с psalm. Дока там довольно простая инициализировать
psalm —init

и запустить
psalm foo.php

с конкретно указанным файлом. однако у меня он почему то показывает ошибки которых нет
(например что не существует интерфейса указанного в файле:
FileManager.php:18:30 - Class or interface api\interfaces\file\FileInterface does not exist
)
(запускал с параметром "без кэша в том числе")
——————
так же если подрубить его через плагин (через ale или coc) то он работает корректно, но мне хотелось бы сделать отдельную команду на запуск статических анализаторов чтоб запускать перед коммитом
источник

ЕР

Евгений Ромашкан... in PHP
Ni Shi
кто нибудь может подсказать по работе с psalm. Дока там довольно простая инициализировать
psalm —init

и запустить
psalm foo.php

с конкретно указанным файлом. однако у меня он почему то показывает ошибки которых нет
(например что не существует интерфейса указанного в файле:
FileManager.php:18:30 - Class or interface api\interfaces\file\FileInterface does not exist
)
(запускал с параметром "без кэша в том числе")
——————
так же если подрубить его через плагин (через ale или coc) то он работает корректно, но мне хотелось бы сделать отдельную команду на запуск статических анализаторов чтоб запускать перед коммитом
Можно попробовать с —debug запустить, мб станет прозрачнее
источник

NS

Ni Shi in PHP
Евгений Ромашкан
Можно попробовать с —debug запустить, мб станет прозрачнее
он так же повторяет что интерфейс не найден в логе но яснее не становится почему он его не нашел
источник

VC

Vladimir Chernyshev in PHP
Ni Shi
кто нибудь может подсказать по работе с psalm. Дока там довольно простая инициализировать
psalm —init

и запустить
psalm foo.php

с конкретно указанным файлом. однако у меня он почему то показывает ошибки которых нет
(например что не существует интерфейса указанного в файле:
FileManager.php:18:30 - Class or interface api\interfaces\file\FileInterface does not exist
)
(запускал с параметром "без кэша в том числе")
——————
так же если подрубить его через плагин (через ale или coc) то он работает корректно, но мне хотелось бы сделать отдельную команду на запуск статических анализаторов чтоб запускать перед коммитом
А регистры совпадают?
источник

VC

Vladimir Chernyshev in PHP
нэймспэймса и полного пути
источник

ЕР

Евгений Ромашкан... in PHP
Ni Shi
он так же повторяет что интерфейс не найден в логе но яснее не становится почему он его не нашел
На известный баг не похоже ¯\_(ツ)_/¯
Проверяй что действительно одинаковые конфиги, версии псалма, верные неймспейсы, попробуй воспроизвести изолированно
источник

VC

Vladimir Chernyshev in PHP
в последнее время что-то все хотят строгого совпадения, например второй композер - кажется очень нескоро на него перейдём из-за этого...
источник

NS

Ni Shi in PHP
Vladimir Chernyshev
нэймспэймса и полного пути
Основное чудо что тот же файл через полагин по psalm не выдаёт ошибки
источник

ИЛ

Иван Лещёв in PHP
скорее всего он не находит композер жсон в папке, в которой запускается
источник

NS

Ni Shi in PHP
Иван Лещёв
скорее всего он не находит композер жсон в папке, в которой запускается
судя по логу находит
источник

NS

Ni Shi in PHP
из консоли:
$ psalm FileManager.php
Scanning files...
Analyzing files...

E

ERROR: UndefinedClass - FileManager.php:18:30 - Class or interface api\interfaces\file\FileInterface does not exist (see https://psalm.dev/019)
class FileManager implements FileInterface


------------------------------
1 errors found
------------------------------

Checks took 0.42 seconds and used 118.688MB of memory
Psalm was able to infer types for 100% of the codebase

по плагину:
FileManager.php|48 col 9 error| [Psalm https://psalm.dev/019] Class or interface Lead does not exist [E]                                                                                                
FileManager.php|71 col 39 error| [Psalm https://psalm.dev/019] Class or interface Lead does not exist [E]
FileManager.php|38 col 31 warning| [Psalm https://psalm.dev/147] $this->uploadFolder with declared type 'string' cannot be assigned possibly different type 'bool|string' [W]
источник

ИЛ

Иван Лещёв in PHP
Ni Shi
из консоли:
$ psalm FileManager.php
Scanning files...
Analyzing files...

E

ERROR: UndefinedClass - FileManager.php:18:30 - Class or interface api\interfaces\file\FileInterface does not exist (see https://psalm.dev/019)
class FileManager implements FileInterface


------------------------------
1 errors found
------------------------------

Checks took 0.42 seconds and used 118.688MB of memory
Psalm was able to infer types for 100% of the codebase

по плагину:
FileManager.php|48 col 9 error| [Psalm https://psalm.dev/019] Class or interface Lead does not exist [E]                                                                                                
FileManager.php|71 col 39 error| [Psalm https://psalm.dev/019] Class or interface Lead does not exist [E]
FileManager.php|38 col 31 warning| [Psalm https://psalm.dev/147] $this->uploadFolder with declared type 'string' cannot be assigned possibly different type 'bool|string' [W]
судя по логу, запускается из папки с файлом, а не из корня проекта
источник

NS

Ni Shi in PHP
Иван Лещёв
судя по логу, запускается из папки с файлом, а не из корня проекта
Извиняюсь если ввёл в заблуждение- удалил путь к файлу и там и там.

Есть ещё такая разница что плагин пользует psalm как lsp. А ещё если запустить psalm без указания файла с выводом ошибок то тех ошибок не будет. Однако идея именно в том чтоб посмотреть ошибки только для измененных файлов
источник

DP

Dmitri Ponomarjov in PHP
Господа, а для resource в PHP есть встроенный тип? чтобы объявить его аргументом функции/метода или обозначить как возвращаемый тип.
Что-то типа такого:
<?php
class qwe {
   public function test(resource $a): resource {
       return $a;
   }
}
$a = imagecreatetruecolor(10 , 10);
$b = new qwe();
$b->test($a);

В документации fopen или imagecreatetruecolor указан тип resource, но в перечне типов в доке я его не нашел, а восьмерку пока не использую, проверить сразу не смогу. Может быть, кто-то сталкивался уже?
источник

АС

Альберт Степанцев... in PHP
Dmitri Ponomarjov
Господа, а для resource в PHP есть встроенный тип? чтобы объявить его аргументом функции/метода или обозначить как возвращаемый тип.
Что-то типа такого:
<?php
class qwe {
   public function test(resource $a): resource {
       return $a;
   }
}
$a = imagecreatetruecolor(10 , 10);
$b = new qwe();
$b->test($a);

В документации fopen или imagecreatetruecolor указан тип resource, но в перечне типов в доке я его не нашел, а восьмерку пока не использую, проверить сразу не смогу. Может быть, кто-то сталкивался уже?
есть
но использовать в тайп-хинте нельзя
источник

DP

Dmitri Ponomarjov in PHP
понятно, спасибо, будем гуглить, что на этот счет предлагает псалм
источник