Загрузка...

Линтеры в PHP: зачем нужны и какие использовать

php

Что такое линтер

Линтер в PHP — это инструмент, который анализирует ваш код без его запуска и ищет:

  • ошибки синтаксиса,
  • потенциальные баги,
  • несоответствия стилю кодирования,
  • нарушения стандартов (например, PSR-12).

Задача линтера — сделать код более качественным, читаемым и безопасным.


Виды линтеров и анализаторов в PHP

1. Встроенный линтер PHP (php -l)

PHP сам умеет проверять синтаксис.

php -l index.php

Пример:

<?php
echo "Hello World"

Результат:

Parse error: syntax error, unexpected end of file in index.php on line 2

⚠️ Ограничение: проверяет только синтаксис, логические ошибки или стиль он не найдет.


2. PHP_CodeSniffer (phpcs)

Используется для проверки стиля кода по стандартам.

Установка:

composer require --dev squizlabs/php_codesniffer

Запуск:

vendor/bin/phpcs --standard=PSR12 src/

Пример кода:

<?php
class test{
function myFunc( $x){
return $x+1;
}
}

phpcs выдаст:

ERROR   | Expected 1 space after class name; 0 found
ERROR   | Method name "myFunc" is not in camel caps format
WARNING | Expected 1 space after opening parenthesis

3. PHP-CS-Fixer

Не просто находит проблемы, а автоматически исправляет код.

Установка:

composer require --dev friendsofphp/php-cs-fixer

Запуск:

vendor/bin/php-cs-fixer fix src/

Пример:
До:

<?php
class test{
function myFunc( $x){
return $x+1;
}
}

После автофикса:

<?php

class Test
{
    public function myFunc($x)
    {
        return $x + 1;
    }
}

4. PHPStan

Статический анализатор, проверяет типы и возможные ошибки.

Установка:

composer require --dev phpstan/phpstan

Запуск:

vendor/bin/phpstan analyse src --level=5

Пример:

<?php
function add(int $a, int $b): int {
    return $a + $b;
}

echo add("5", "10");

phpstan скажет:

Parameter #1 $a of function add expects int, string given.

5. Psalm

Аналог PHPStan, но с поддержкой аннотаций и более строгой проверкой.

Установка:

composer require --dev vimeo/psalm
vendor/bin/psalm --init

Запуск:

vendor/bin/psalm

Пример:

<?php
/**
 * @return int
 */
function getId(): string {
    return "42";
}

psalm скажет:

ERROR: InvalidReturnType - getId: Expected int, got string

Сравнение инструментов

Инструмент Для чего нужен Примеры ошибок Автофикс
php -l Проверка синтаксиса Пропущенная ;, незакрытая {
PHP_CodeSniffer Проверка стиля кода по стандартам (PSR-12 и др.) Отступы, пробелы, именование
PHP-CS-Fixer Автоматическая правка стиля Форматирование, пробелы, скобки
PHPStan Поиск ошибок типов, недостижимого кода Передача string вместо int
Psalm Более строгая проверка типов и аннотаций Несоответствие phpdoc и типов

Когда использовать какой инструмент

  • php -l — быстрый чек на синтаксис (обычно в CI/CD).
  • phpcs — чтобы проект соответствовал кодстайлу.
  • php-cs-fixer — если хотите автоматически исправлять стиль.
  • phpstan / psalm — если важна строгая проверка типов и поиск багов на раннем этапе.

Итог

Линтеры и статические анализаторы — это «вторые глаза» разработчика.
Они помогают:

  • писать чистый и единообразный код,
  • находить баги до запуска,
  • ускорять код-ревью.

Лучше всего использовать сочетание инструментов:
phpcs или php-cs-fixer для стиля + phpstan или psalm для проверки логики.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *