Образ Docker, предоставляющий инструменты статического анализа для PHP. Список доступных инструментов и программа установки фактически находятся в репозитории jakzal/toolbox
.
Репозиторий Docker Hub: https://hub.docker.com/r/jakzal/phpqa/
Ночные сборки: https://hub.docker.com/r/jakzal/phpqa-nightly/
latest
, debian
(Dockerfile)1.99.0
, 1.99
, 1.99.0-debian
, 1.99-debian
(Dockerfile)1.99.0-php8.1
, 1.99-php8.1
, php8.1-debian
, php8.1
(Dockerfile)1.99.0-php8.2
, 1.99-php8.2
, php8.2-debian
, php8.2
(Dockerfile)1.99.0-php8.3
, 1.99-php8.3
, php8.3-debian
, php8.3
(Dockerfile)alpine
(Dockerfile)1.99.0-alpine
, 1.99-alpine
, (Dockerfile)1.99.0-php8.1-alpine
, 1.99-php8.1-alpine
, php8.1-alpine
(Dockerfile)1.99.0-php8.2-alpine
, 1.99-php8.2-alpine
, php8.2-alpine
(Dockerfile)1.99.0-php8.3-alpine
, 1.99-php8.3-alpine
, php8.3-alpine
(Dockerfile) Обновляется ежедневно: latest
, debian
, alpine
, php8.4
, php8.4-alpine
и т. д. Обновление при смене версии патча: 1.61
, 1.61-php8.4
, 1.61-php8.4-alpine
и т. д. Никогда не обновлялось: 1.61.0
, 1.61.0-php8.4
, 1.61.0-php8.4-alpine
и т. д.
Это последние теги для версий PHP, которые больше не поддерживаются:
1.92.7-php8.0
, 1.93-php8.0
, php8.0-debian
, php8.0
(Dockerfile)1.92.7-php8.0-alpine
, 1.93-php8.0-alpine
, php8.0-alpine
(Dockerfile)1.80.0-php7.4
, 1.80-php7.4
, php7.4-debian
, php7.4
(Dockerfile)1.80.0-php7.4-alpine
, 1.80-php7.4-alpine
, php7.4-alpine
(Dockerfile)1.61.2-php7.3
, 1.61-php7.3
, php7.3-debian
, php7.3
(debian/Dockerfile)1.61.2-php7.3-alpine
, 1.61-php7.3-alpine
, php7.3-alpine
(alpine/Dockerfile)1.44.0-php7.2
, 1.44-php7.2
, php7.2
(7.2/debian/Dockerfile)1.44.0-php7.2-alpine
, 1.44-php7.2-alpine
, php7.2-alpine
(7.2/alpine/Dockerfile)1.26.0-php7.1
, 1.26-php7.1
, php7.1
(7.1/debian/Dockerfile)1.26.0-php7.1-alpine
, 1.26-php7.1-alpine
, php7.1-alpine
(7.1/alpine/Dockerfile) Имя | Описание | PHP 8.1 | PHP 8.2 | PHP 8.3 | PHP 8.4 |
---|---|---|---|---|---|
поведение | Помогает проверить ожидания бизнеса | ||||
коробка | Быстрый сборщик приложений без настройки с PHAR | ||||
коробка-3 | Быстрый сборщик приложений без настройки с PHAR | ||||
сбивать | Находит хороших кандидатов для рефакторинга | ||||
кодецепция | Codeception — это среда тестирования PHP в стиле BDD. | ||||
композитор | Менеджер зависимостей для PHP | ||||
композитор-bin-плагин | Плагин Composer для установки поставщиков мусорных баков в изолированных местах | ||||
композитор-нормализовать | Плагин Composer для нормализации файлов композитора.json | ||||
композитор-требует-проверку | Убедитесь, что в источниках пакета не используются неизвестные символы. | ||||
композитор-требует-проверку-3 | Убедитесь, что в источниках пакета не используются неизвестные символы. | ||||
композитор-не используется | Покажите неиспользуемые пакеты, отсканировав ваш код | ||||
защищать | Обнаружение недостатков в вашей архитектуре | ||||
детектор устаревания | Находит использование устаревшего кода | ||||
департамент | Обеспечивает соблюдение правил зависимостей между уровнями программного обеспечения. | ||||
diffFilter | Применяет инструменты контроля качества для выполнения одного запроса на включение | ||||
экс | Устанавливает и запускает стандартные проверки кодирования. | ||||
инфекция | Платформа тестирования мутаций PHP на основе AST | ||||
Ларастан | Расширение PHPStan для Laravel | ||||
локальная-php-проверка безопасности | Проверяет зависимости композитора на наличие известных уязвимостей безопасности. | ||||
параллельный ворс | Проверяет синтаксис файла PHP | ||||
паратест | Параллельное тестирование PHPUnit | ||||
pзависть | Инструмент статического анализа | ||||
вредитель | Элегантная среда тестирования PHP | ||||
фан | Инструмент статического анализа | ||||
пять | Среда установки и проверки PHAR | ||||
php-cs-фиксатор | Исправление стандартов PHP-кодирования | ||||
php-фаззер | Фаззер для PHP, который можно использовать для поиска ошибок в библиотеках, передавая им «случайные» входные данные. | ||||
php-semver-checker | Предлагает следующую версию в соответствии с семантическим управлением версиями. | ||||
PHPA | Проверяет слабые предположения | ||||
phparkitect | Помогает разместить архитектурные ограничения в базе кода PHP. | ||||
phpat | Простой в использовании инструмент тестирования архитектуры | ||||
phpbench | Фреймворк для сравнительного анализа PHP | ||||
phpca | Находит использование невстроенных расширений | ||||
phpcb | Браузер PHP-кода | ||||
phpcbf | Автоматически исправляет нарушения стандартов кодирования | ||||
phpcodesniffer-composer-install | Простая установка стандартов кодирования PHP_CodeSniffer (наборов правил). | ||||
phpков | интерфейс командной строки для библиотеки PHP_CodeCoverage | ||||
phpcpd | Детектор копирования/вставки | ||||
PHPS | Обнаруживает нарушения стандартов кодирования | ||||
phpCS-аудит безопасности | Находит уязвимости и слабые места, связанные с безопасностью в PHP-коде. | ||||
phpdd | Находит использование устаревших функций | ||||
phpДокументор | Генератор документации | ||||
PHPinsights | Анализирует качество, стиль, архитектуру и сложность кода. | ||||
phplint | Параллельно проверяет php-файлы | ||||
phploc | Инструмент для быстрого измерения размера PHP-проекта. | ||||
phpmd | Инструмент для поиска проблем в PHP-коде | ||||
phpmetrics | Инструмент статического анализа | ||||
phpmnd | Помогает обнаружить магические числа | ||||
phpspec | Фреймворк SpecBDD | ||||
phpstan | Инструмент статического анализа | ||||
phpstan-запрещенный-код | Правила PHPStan для обнаружения вызовов определенных функций, которые вам не нужны в вашем проекте | ||||
phpstan-beberlei-assert | Расширение PHPStan для beberlei/assert | ||||
phpstan-deprecation-rules | Правила PHPStan для обнаружения устаревшего кода | ||||
phpstan-доктрина | Расширения Doctrine для PHPStan | ||||
phpstan-ergebnis-правила | Дополнительные правила для PHPstan | ||||
phpstan-правила-исключения | Правила PHPStan для проверенных и непроверенных исключений | ||||
phpstan-larastan | Отдельная установка phpstan для ларастана | ||||
phpstan-phpunit | Расширения PHPUnit и правила для PHPStan | ||||
phpstan-строгие правила | Чрезвычайно строгие и самоуверенные правила для PHPStan. | ||||
phpstan-symfony | Расширение Symfony для PHPStan | ||||
phpstan-webmozart-assert | Расширение PHPStan для webmozart/assert | ||||
phpunit | Платформа тестирования PHP | ||||
phpunit-10 | Платформа тестирования PHP (версия 10.x) | ||||
phpunit-8 | Платформа тестирования PHP (версия 8.x) | ||||
phpunit-9 | Платформа тестирования PHP (версия 9.x) | ||||
пинта | Упрямый инструмент для исправления стиля PHP-кода для Laravel | ||||
псалом | Находит ошибки в PHP-приложениях. | ||||
псалом-плагин-доктрина | Заглушки, позволяющие Psalm лучше понимать Доктрину | ||||
псалм-плагин-phpunit | Плагин Psalm для PHPUnit | ||||
псалм-плагин-symfony | Плагин Psalm для Symfony | ||||
психоанализ | Сканирует код на наличие потенциальных проблем, связанных с безопасностью. | ||||
ректор | Инструмент для мгновенного обновления кода и рефакторинга | ||||
проверка обратной совместимости roave | Инструмент для сравнения двух версий API класса для проверки разрывов BC. | ||||
простой-phpunit | Предоставляет утилиты для сообщения о устаревших тестах и использовании устаревшего кода. | ||||
ветка-cs-фиксатор | Автоматически исправляет файлы веток в соответствии с официальными стандартными правилами кодирования. | ||||
веточка | Автономный cli twig 1.X линтер | ||||
веточка-линтер | Автономный cli twig 3.X линтер | ||||
веточки | Недостающий контрольный стиль для Twig! | ||||
Ямл-линт | Компактная утилита командной строки для проверки синтаксиса файлов YAML. |
Некоторые инструменты не включены в образ Docker, для их использования обратитесь к их документации:
Имя | Краткое содержание |
---|---|
анализировать | Визуализирует метрики и исходный код |
коробка-наследие | Устаревшая версия коробки |
композитор-нормализовать | Плагин Composer для нормализации файлов композитора.json |
шаблон проектирования | Обнаруживает шаблоны проектирования |
параллельный ворс | Проверяет синтаксис файла PHP |
php-coupling-detector | Обнаруживает проблемы со связью кода |
php-форматер | Средство исправления пользовательских стандартов кодирования |
phpcf | Находит использование устаревших функций |
phpda | Создает графики зависимостей |
преобразование phpdoc в подсказку | Автоматически добавляет подсказки типов и возвращаемые типы на основе PHPDocs. |
phpstan-localheinz-правила | Дополнительные правила для PHPstan |
проверка безопасности | Проверяет зависимости композитора на наличие известных уязвимостей безопасности. |
проверяемость | Анализирует и сообщает о проблемах тестируемости базы кода PHP. |
Вытащите изображение:
docker pull jakzal/phpqa
Команда по умолчанию выведет список доступных инструментов:
docker run -it --rm jakzal/phpqa
Чтобы запустить выбранный инструмент внутри контейнера, вам необходимо смонтировать каталог проекта в контейнере с помощью -v "$(pwd):/project"
. Некоторым инструментам нравится писать в каталог /tmp
(например, PHPStan или в некоторых случаях Behat), поэтому часто бывает полезно использовать его между запусками докера, например, с помощью -v "$(pwd)/tmp-phpqa:/tmp"
. Если вы хотите иметь возможность прервать работу выбранного инструмента, если его выполнение занимает слишком много времени, вы можете использовать опцию --init
. Для получения дополнительной информации обратитесь к документации по запуску Docker.
docker run --init -it --rm -v " $( pwd ) :/project " -v " $( pwd ) /tmp-phpqa:/tmp " -w /project jakzal/phpqa phpstan analyse src
Возможно, вы захотите настроить эту команду под свои нужды и создать для удобства псевдоним:
alias phpqa= ' docker run --init -it --rm -v "$(pwd):/project" -v "$(pwd)/tmp-phpqa:/tmp" -w /project jakzal/phpqa:alpine '
Добавьте его в свой ~/.bashrc
, чтобы он определялся каждый раз, когда вы начинаете новый сеанс терминала.
Теперь команда становится намного проще:
phpqa phpstan analyse src
git clone https://github.com/jakzal/phpqa.git
cd phpqa
make build-debian
Чтобы собрать альпийскую версию:
make build-alpine
Дополнительные советы и подсказки можно найти в кулинарной книге.
Пожалуйста, прочитайте Руководство для участников, чтобы узнать, как внести свой вклад в этот проект. Обратите внимание, что этот проект выпущен с Кодексом поведения участников. Участвуя в этом проекте, вы соглашаетесь соблюдать его условия.