LINUX.ORG.RU

PHPStan 1.0

 


0

1

Спустя 6 лет разработки вышла первая «мажорная» версия статического анализатора PHP-кода PHPStan.

Нововведения:

  • Для более лёгкого выбора правил в PHPStan существует система правил. 0 уровень соответствует самому щадящему набору правил, а 8 соответствовал самому строгому. В этом же релизе добавлен новый 9 уровень, ограничивающий использование типа mixed, который теперь можно передавать лишь другому mixed.
  • PHPStan теперь может запоминать, что функция, вызываемая второй раз, должна вернуть тот же результат.
  • Аннотации @throws теперь полностью учитываются, когда проверяются блоки catch и finally.
  • Добавлена поддержка определения неиспользованных закрытых свойств, методов и констант.
  • Добавлена проверка типов массивов и параметров callback-функций, которые должны обрабатывать эти массивы.
  • Рекурсивная проверка типов: теперь недостаточно просто указать array<array>, надо объявить тип и для вложенного массива.
  • Поддержка PHPDocs-описания типов, так, к примеру, указание типов для элементов массива (array shape) теперь производится при помощи синтаксиса array{...}, а не array(...).

Стоит также заметить, что модель разработки PHPStan несколько необычна: нововведения добавляются в основную ветку, но остаются выключенными до следующего значительного релиза.

>>> Подробности

>>> Полный список изменений

★★★

Проверено: Zhbert ()
Последнее исправление: xaizek (всего исправлений: 4)

Ответ на: комментарий от s-warus

Быстро сделать консольное приложение или GUI, и bash для ваших задач не очень, привет питону, хотя есть си, си++, но новичку проще в питоне, отладка в си мне больше нравится, но набросать пару строчек в питоне проще.

Проще всего набросать пару строк - в Ruby. Или в quickjs.

Но в сраных «серьёзных проектах» куда ни плюнь везде мелкая автоматизация написана на питоне.

Тут чо-т устал от питона на работе, думаю, дай-ка покопаюсь в коде своего форка редактора на си, который подпиливаю под свои нужды помаленьку. Зашел в каталог и вспомнил, что там куча обвязки для сборки проекта написана на втором питоне, который мне теперь предстоит портировать на третий. Закрыл нахрен и пошел за пивом.

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от theNamelessOne

Вот вот. Там было написано про Джаву, на что я привел кусок кода и попросил то же самое написать на Джаве.

Неважно ПХП говно или не говно, неважно говно код или не говно, словоблудие мне не интересно: я попросил код на Джаве.

windows10 ★★★★★
()

Спустя 6 лет разработки вышла первая «мажорная» версия

Я не гонюсь за циферками, но опять нумерация версий 0.0.0.0.0.0.1?

baobab
()

Какой пыхпых? Ты на календарь вообще смотрел? 2021 год скоро кончится, а он тут с этим говном падучим и дырявым!

Кто в своем уме будет этой дрянью пользоваться?

anonymous
()
Ответ на: комментарий от fernandos

Чем прикажете его заменить?

Любым языком который не PHP.

sphericalhorse ★★★★★
()
Ответ на: комментарий от anonymous

Пыха не дырявая и не падучая.
Она просто ущербная по своей природе.
Вернее она ущербная для того, для чего её используют.
Если её использовать для того, для чего её придумали, то есть для того что бы на статическом сайте добавить обработку для одной формочки Пыха самое оно.

sphericalhorse ★★★★★
()
Ответ на: комментарий от anonymous

есть гениальные вещи, и в пыхпыхе которых я болше, ни где не встречал.

s-warus ★★
()
Ответ на: комментарий от wandrien

стыдно я Ruby не знаю, про quickjs только сейчас услышал.
у питона есть плюс он и в винде работает.
есть и огромный минус, нужен был простенький веб прокси, для веб версии 1С, написал работает, сука но иногда падает, по причине в потоке не валидный utf-8 символ встречается в данных помеченных как бинарные почему, на си повторил, но ставить винду, разбираться-искать-регистрироваться бесплатную визуал студию, проще на 2 питоне повторить, но я уже на си написал

s-warus ★★
()
Ответ на: комментарий от baobab

wine 18 лет до 1 версии добиралась, апачь на вторую лет 30 менял

s-warus ★★
()
Ответ на: комментарий от fernandos

>> у питона есть плюс он и в винде работает.

А что не работает?

его просто в два щелчка поставить, без регистрации и смс поставить, в отличие от си, с#, java.

извини это моё отношение к windows+ сожаления о потерянном времени на разборки, что как ставить, разбираться, что нужно покупать, что не нужно, бесконечные регистрации винды, java, visul studio, ползанье по менюшкам отключение включение, странные лицензии IIS.

s-warus ★★
()
Ответ на: комментарий от s-warus

си

Си не ставится, ставиться компилятор.

с#,

И так с виндой поставляется.

java

В сколько кликов ставиться джава?

извини это моё отношение к windows

Если вы думаете, что я хорошо отношусь к винде, то это не так.

fernandos ★★★
() автор топика
Ответ на: комментарий от fernandos

В сколько кликов ставиться джава?

этот сложный квест, я не осилил, звал человека со стороны, нужен был какой то jdk 8, на сайте оракла регистрация, и тд, и тп.

Я больше ценю своё время. Мне проще с кодом помочь, преписать на v11, чем изучать постоянно меняющиеся правила, откуда, как почему.

s-warus ★★
()
Ответ на: комментарий от fernandos

Си не ставится, ставиться компилятор.

я идиот, не знаю, для меня арбуз, это арбуз, а то что нужно ставить мякоть я не понимаю.

И так с виндой поставляется.

Моя последняя штатная винда была XP, но вы точно уверены что в чистой винде, имея код C# я смогу собрать программу?

s-warus ★★
()
Ответ на: комментарий от s-warus

С# !== мочь собрать программу. Или вы свои программы даёте в виде исходников, а не готового бинарника?

fernandos ★★★
() автор топика
Ответ на: комментарий от fernandos

а точно, раньше без дотнета проги не ставились, я рад что по умолчанию он идёт, просто для меня фраза, С# и так с виндой поставляется, означает что компилятор присутствует.

Знаю, я отсталый, можно и на linux .exe собирать. Ошибался, думал что под виндой проще.

s-warus ★★
()
Ответ на: комментарий от Rodegast

Был когда то delphi/pascal и где оно сейчас?

тоже интересна его судьба.
Быстрая компиляция, удобная отладка, код палитры предустановленных компонентов открыт.

s-warus ★★
()
Ответ на: комментарий от fernandos

На семнадцатый! (?) год знакомства с PHP я узнал, что false, true и null - полностью регистронезависимые константы, а не просто есть пары синонимов false/FALSE, true/TRUE и null/NULL!

Но зачем?

wandrien ★★
()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от s-warus

Мне больше C++ Builder нравился, хоть это и был побочный продукт от скрещивания компилятора C++ с библиотекой компонентов от Delphi. На паскале мне неудобно было писать.

До сих пор какие-то куски от библиотеки VCL помню типа основ автоматического позиционирования виджетов относительно сторон окна.

А для любителей Delphi есть же свободный Lazarus.

wandrien ★★
()
Ответ на: комментарий от wandrien

Издержки обратной совместимости, а раньше пых был многократно хуже. Нулл — отдельный тип, экземпляр которого принимает лишь одно значение, определённое регистронезависимым ключевым словом null.

fernandos ★★★
() автор топика
Последнее исправление: fernandos (всего исправлений: 1)
Ответ на: комментарий от anonymous

Что такого ужасного должно было произойти с человеком, чтобы он не разобрался в маркдауне?

И, к слову, там речь про рантаймы шла, поэтому и сказал про компилятор.

fernandos ★★★
() автор топика
Ответ на: комментарий от fernandos

поэтому и сказал про компилятор

Нет, лалка, ты как всегда хотела поумничать, и села в лужу

anonymous
()

Попробовал для интереса. Субъективно: полезно для разовой проверки старого кода, для CICD применения не вижу, т.к. долгий. Однако работает хорошо на заведомо допущенных ошибках - симуляциях плохого разработчика и ревьюеров =) Спасибо за новость, буду применять дома

minakov ★★★★★
()
Ответ на: комментарий от minakov

для CICD применения не вижу, т.к. долгий

Тут нужно что-то попроще, типа noverify.

fernandos ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.