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)

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

Что тут необычного? Это же TBD, вообще лучшая модель разработки.

no-such-file ★★★★★
()

Спустя 6 лет разработки

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

th3m3 ★★★★★
()

Зачем оно нужно, если на 80 процентах проектов он выкинет исключение: говно код по ха пе не нужен.

GP
()

developing PHPStan is now my full-time job

кто-то неплохо донатит автору, значит пхп кому-то нужно.

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

Необычно отлаживать регрессию

Как раз таки гораздо проще, т.к. можно выключать/включать фичи прямо в рантайме.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

И чем это проще? Включение-выключение проверок и так присутствует.

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

Зачем оно нужно, если на 80 процентах проектов он выкинет исключение: говно код по ха пе не нужен.

Он же умнее, не выкинет.

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

Java

Прямо сейчас набросай-ка мне полный код проверки валидности введенного пароля.

<?php
if ((isset($_POST['pass'])) and ($_POST['pass']=='temp123')) {echo "Authorized";} else {echo "Not authorized";}
echo "<form action='' method=POST>Введите пароль<input type=text name=pass></form>";
?>

Удачи гг

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

Фрактал там подписан своим первым ником, Fraktal1 или как-то так.

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

JavaScript.

Твои аватарка, ник и содержания сообщения намекают на переизбыток ЖС в твоей жизни )

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

Фи, как многословно. Вот как надо:

<?php
echo (($_POST['pass'] ?? null) === 'temp123') ? 'Authorized' : 'Not authorized';
?>
<form>
...

А так да, PHP всех вас переживет, сосунки. Чересчур много старого кода, чересчур много программистов на нем. Банально слишком большой и легко доступный, чтобы умереть. Кстати, «но веб макаки же…» совсем не аргумент - бизнесу плевать. Ему надо, чтоб было много и дешево. А если ему надо еще и хорошо, и бабло уже есть, просто нанимает PHP программистов по лучше.

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

Ему надо, чтоб было много и дешево.

Python же. Подрастающая молодёжь во всю читает/смотрит туториалы по питону. Через несколько лет много и дёшево будет там.

Но PHP еще долго не вымрет, наверное много десятилетий, т.к. всё понаписанное теперь надо поддерживать.

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

Python же.

Да, наверное, ты прав. Сам заметил, что в последнее время как то многовато юных питонистов развелось…

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

Спасибо, сблеванул.

Счет за очистку клавиатуры куда отсылать?

Успешному программисту веба НЕ НА PHP конечно :)

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

сейчас архитектурно php неотличим от java.

Раньше была задача быстро скомпилировать, быстро запустится, и быстро самоубиться, освободив все занятые ресурсы, поэтому объектно-ориентировости долго не было, безопасность страдала пофиг всё равно процессу быть убитым.

Сейчас, zend машина, предварительная компиляция, освобождение ресурсов.

Что меня удивило сервер игры минекрафт бедрок на php написан, это гораздо удивительнее сайта на питоне.

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

сейчас архитектурно php неотличим от java.

Чересчур много старого кода

Этот код считается аргументом в пользу PHP, что ли?

/0

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

Typescript, если стильно модно молодежно. Java, если кровавый Энтерпрайз.

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

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

Нет просто php3 и php5-8 это разные вещи, и что было хорошо для v3, не всегда хорошо для v5, v7 используется там где я, php никогда, и таким образом использовать php не стал.

Вот зачем thead в php? Демон написанный на php? Кому это в голову пришло?

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

Отдельные куски. Сам код является аргументом против.

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

это код какой версии погабе? тройка или двойка?

При чем здесь погабе ? Там было о джаве.

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