1. Экономическая война
  2. Развитие IT-технологий
Москва, / ИА Красная Весна

Вышла «безжалостная» версия статического анализатора PHPStan 1.0

Изображение: (сс) markusspiske
код, программирование
код, программирование

Первую стабильную версию 1.0 статического анализатора PHPStan, который призван находить ошибки в исходных текстах программ на языке PHP, выпустил разработчик Ондржей Миртес 1 ноября, сообщается в авторском блоге на сайте проекта.

«Это статический анализатор для PHP, ориентированный на поиск ошибок в вашем коде. Он улавливает целые классы ошибок еще до того, как вы вообще запустите свое приложение», — пояснил назначение программы автор.

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

Программа обеспечивает 10 уровней проверки с нулевого по девятый. На нулевом (базовом) уровне отлавливаются только наиболее простые и очевидные ошибки вроде неопределенных переменных, неправильного числа аргументов и т. п.

На каждом следующем уровне применяются все более строгие критерии и выявляются все более сложные ошибки. Например, проверяются возвращаемые типы (уровень 3), выявляются участки кода, которые никогда не будут выполнены — «мертвый» код (уровень 4), проверяются типы передаваемых в функции аргументов (уровень 5).

Главной особенностью PHPStan 1.0 стало добавление девятого уровня проверки, который позволяет проверять использование потенциально небезопасного типа «mixed», посредством которого функции могут принимать параметры разных типов.

Анализатор, по словам разработчика, поступает «безжалостно и совершенно жестоко», и позволяет на девятом уровне только присвоить данные типа «mixed» другой переменной того же типа.

«Вы не можете присвоить его другому типу, вы не можете вызывать для него методы, вы не можете получить доступ к его свойствам и т. д. Потому что они могут не существовать», — объясняет Миртес.

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

Напомним, программа также написана на PHP и распространяется по лицензии MIT.