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 ()

Ответ на: комментарий от 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 ★★★ ()
Ответ на: комментарий от windows10

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

s-warus ()