Docker-Image, das statische Analysetools für PHP bereitstellt. Die Liste der verfügbaren Tools und das Installationsprogramm werden tatsächlich im jakzal/toolbox
-Repository verwaltet.
Docker-Hub-Repository: https://hub.docker.com/r/jakzal/phpqa/
Nächtliche Builds: 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) Täglich aktualisiert: latest
, debian
, alpine
, php8.4
, php8.4-alpine
usw. Aktualisiert bei Patch-Versionsänderung: 1.61
, 1.61-php8.4
, 1.61-php8.4-alpine
usw. Nie aktualisiert: 1.61.0
, 1.61.0-php8.4
, 1.61.0-php8.4-alpine
, usw.
Dies sind die neuesten Tags für PHP-Versionen, die nicht mehr unterstützt werden:
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) Name | Beschreibung | PHP 8.1 | PHP 8.2 | PHP 8.3 | PHP 8.4 |
---|---|---|---|---|---|
behat | Hilft, Geschäftserwartungen zu testen | ||||
Kasten | Schneller, konfigurationsfreier Anwendungs-Bundler mit PHARs | ||||
Kasten-3 | Schneller, konfigurationsfreier Anwendungs-Bundler mit PHARs | ||||
Abwanderung | Entdeckt gute Kandidaten für ein Refactoring | ||||
Kodezeption | Codeception ist ein PHP-Testframework im BDD-Stil | ||||
Komponist | Abhängigkeitsmanager für PHP | ||||
Composer-Bin-Plugin | Composer-Plugin zur Installation von Bin-Anbietern an isolierten Standorten | ||||
Komponist-normalisieren | Composer-Plugin zur Normalisierung von Composer.json-Dateien | ||||
Composer-Require-Checker | Stellen Sie sicher, dass in den Quellen eines Pakets keine unbekannten Symbole verwendet werden. | ||||
Composer-Require-Checker-3 | Stellen Sie sicher, dass in den Quellen eines Pakets keine unbekannten Symbole verwendet werden. | ||||
Komponist-unbenutzt | Zeigen Sie ungenutzte Pakete an, indem Sie Ihren Code scannen | ||||
dephpend | Erkennen Sie Mängel in Ihrer Architektur | ||||
Abwertungsdetektor | Findet Verwendungen von veraltetem Code | ||||
deptrac | Erzwingt Abhängigkeitsregeln zwischen Softwareschichten | ||||
diffFilter | Wendet QA-Tools zur Ausführung auf einer einzelnen Pull-Anfrage an | ||||
ecs | Richtet Codierungsstandardprüfungen ein und führt sie durch | ||||
Infektion | AST-basiertes PHP-Mutationstest-Framework | ||||
larastan | PHPStan-Erweiterung für Laravel | ||||
local-php-security-checker | Überprüft Composer-Abhängigkeiten auf bekannte Sicherheitslücken | ||||
parallel-lint | Überprüft die PHP-Dateisyntax | ||||
paratest | Paralleles Testen für PHPUnit | ||||
pdepend | Statisches Analysetool | ||||
Pest | Das elegante PHP Testing Framework | ||||
phan | Statisches Analysetool | ||||
Phive | PHAR-Installations- und Verifizierungsumgebung | ||||
PHP-CS-Fixer | Fixer für PHP-Codierungsstandards | ||||
PHP-Fuzzer | Ein Fuzzer für PHP, der zum Auffinden von Fehlern in Bibliotheken verwendet werden kann, indem diesen „zufällige“ Eingaben zugeführt werden | ||||
PHP-Semver-Checker | Schlägt gemäß der semantischen Versionierung eine nächste Version vor | ||||
phpa | Prüft auf schwache Annahmen | ||||
phparkitect | Hilft, architektonische Einschränkungen in eine PHP-Codebasis zu integrieren | ||||
phpat | Einfach zu verwendendes Architekturtest-Tool | ||||
phpbench | PHP-Benchmarking-Framework | ||||
phpca | Ermittelt die Verwendung nicht integrierter Erweiterungen | ||||
phpcb | PHP-Code-Browser | ||||
phpcbf | Korrigiert automatisch Verstöße gegen Codierungsstandards | ||||
phpcodesniffer-composer-install | Einfache Installation der PHP_CodeSniffer-Codierungsstandards (Regelsätze). | ||||
phpcov | ein Befehlszeilen-Frontend für die PHP_CodeCoverage-Bibliothek | ||||
phpcpd | Detektor zum Kopieren/Einfügen | ||||
phpcs | Erkennt Verstöße gegen Codierungsstandards | ||||
phpcs-Sicherheitsaudit | Findet Schwachstellen und Schwachstellen im Zusammenhang mit der Sicherheit im PHP-Code | ||||
phpdd | Ermittelt die Verwendung veralteter Funktionen | ||||
phpDocumentor | Dokumentationsgenerator | ||||
phpinsights | Analysiert Codequalität, -stil, -architektur und -komplexität | ||||
phplint | Lint PHP-Dateien parallel | ||||
phploc | Ein Tool zum schnellen Messen der Größe eines PHP-Projekts | ||||
phpmd | Ein Tool zum Auffinden von Problemen im PHP-Code | ||||
phpmetrics | Statisches Analysetool | ||||
phpmnd | Hilft, magische Zahlen zu erkennen | ||||
phpspec | SpecBDD-Framework | ||||
phpstan | Statisches Analysetool | ||||
phpstan-banned-code | PHPStan-Regeln zum Erkennen von Aufrufen bestimmter Funktionen, die Sie in Ihrem Projekt nicht haben möchten | ||||
phpstan-beberlei-assert | PHPStan-Erweiterung für beberlei/assert | ||||
phpstan-deprecation-rules | PHPStan-Regeln zur Erkennung veralteten Codes | ||||
phpstan-lehre | Doctrine-Erweiterungen für PHPStan | ||||
phpstan-ergebnis-rules | Zusätzliche Regeln für PHPstan | ||||
phpstan-Ausnahmeregeln | PHPStan-Regeln für aktivierte und nicht aktivierte Ausnahmen | ||||
phpstan-larastan | Separate Installation von PHPSTAN für Larastan | ||||
phpstan-phpunit | PHPUnit-Erweiterungen und Regeln für PHPStan | ||||
phpstan-strikte-regeln | Extra strenge und eigensinnige Regeln für PHPStan | ||||
phpstan-symfony | Symfony-Erweiterung für PHPStan | ||||
phpstan-webmozart-assert | PHPStan-Erweiterung für webmozart/assert | ||||
phpunit | Das PHP-Testframework | ||||
phpunit-10 | Das PHP-Testframework (Version 10.x) | ||||
phpunit-8 | Das PHP-Testframework (8.x-Version) | ||||
phpunit-9 | Das PHP-Testframework (9.x-Version) | ||||
Pint | Meinungsbildender PHP-Codestil-Fixer für Laravel | ||||
Psalm | Findet Fehler in PHP-Anwendungen | ||||
Psalm-Plugin-Doktrin | Stubs, damit der Psalm die Lehre besser versteht | ||||
psalm-plugin-phpunit | Psalm-Plugin für PHPUnit | ||||
Psalm-Plugin-Symfony | Psalm-Plugin für Symfony | ||||
psecio-parse | Scannt Code auf potenzielle sicherheitsrelevante Probleme | ||||
Rektor | Tool für sofortige Code-Upgrades und Refactoring | ||||
Roave-Abwärtskompatibilitätsprüfung | Tool zum Vergleichen zweier Revisionen einer Klassen-API, um auf BC-Unterbrechungen zu prüfen | ||||
simple-phpunit | Bietet Dienstprogramme zum Melden von Legacy-Tests und der Verwendung von veraltetem Code | ||||
Zweig-CS-Fixer | Korrigiert Twig-Dateien automatisch gemäß den offiziellen Codierungsstandardregeln | ||||
Zweig-Flusen | Standalone-Cli-Twig 1.X-Linter | ||||
Zweig-Linter | Standalone-Cli-Twig 3.X-Linter | ||||
Zweige | Der fehlende Checkstyle für Twig! | ||||
yaml-lint | Kompaktes Befehlszeilenprogramm zum Überprüfen der YAML-Dateisyntax |
Einige Tools sind nicht im Docker-Image enthalten. Informationen zur Verwendung finden Sie in der entsprechenden Dokumentation:
Name | Zusammenfassung |
---|---|
analysieren | Visualisiert Metriken und Quellcode |
Box-Vermächtnis | Legacy-Version der Box |
Komponist-normalisieren | Composer-Plugin zur Normalisierung von Composer.json-Dateien |
Design-Muster | Erkennt Designmuster |
parallel-lint | Überprüft die PHP-Dateisyntax |
PHP-Kopplungsdetektor | Erkennt Probleme mit der Codekopplung |
PHP-Formatierer | Fixierer für benutzerdefinierte Codierungsstandards |
phpcf | Ermittelt die Verwendung veralteter Funktionen |
phpda | Erzeugt Abhängigkeitsdiagramme |
phpdoc-to-typehint | Fügt automatisch Typhinweise und Rückgabetypen basierend auf PHPDocs hinzu |
phpstan-localheinz-rules | Zusätzliche Regeln für PHPstan |
Sicherheitsprüfer | Überprüft Composer-Abhängigkeiten auf bekannte Sicherheitslücken |
Prüfbarkeit | Analysiert und meldet Testbarkeitsprobleme einer PHP-Codebasis |
Ziehen Sie das Bild:
docker pull jakzal/phpqa
Der Standardbefehl listet die verfügbaren Tools auf:
docker run -it --rm jakzal/phpqa
Um das ausgewählte Tool im Container auszuführen, müssen Sie das Projektverzeichnis mit -v "$(pwd):/project"
im Container mounten. Einige Tools schreiben gerne in das /tmp
-Verzeichnis (wie PHPStan oder in manchen Fällen Behat), daher ist es oft nützlich, es zwischen Docker-Läufen zu teilen, z. B. mit -v "$(pwd)/tmp-phpqa:/tmp"
. Wenn Sie das ausgewählte Tool unterbrechen möchten, wenn die Ausführung zu lange dauert, können Sie die Option --init
verwenden. Weitere Informationen finden Sie in der Docker-Run-Dokumentation.
docker run --init -it --rm -v " $( pwd ) :/project " -v " $( pwd ) /tmp-phpqa:/tmp " -w /project jakzal/phpqa phpstan analyse src
Möglicherweise möchten Sie diesen Befehl an Ihre Bedürfnisse anpassen und der Einfachheit halber einen Alias erstellen:
alias phpqa= ' docker run --init -it --rm -v "$(pwd):/project" -v "$(pwd)/tmp-phpqa:/tmp" -w /project jakzal/phpqa:alpine '
Fügen Sie es zu Ihrem ~/.bashrc
hinzu, damit es jedes Mal definiert wird, wenn Sie eine neue Terminalsitzung starten.
Jetzt wird der Befehl viel einfacher:
phpqa phpstan analyse src
git clone https://github.com/jakzal/phpqa.git
cd phpqa
make build-debian
So bauen Sie die alpine Version:
make build-alpine
Weitere Tipps & Tricks finden Sie im Kochbuch.
Bitte lesen Sie den Beitragsleitfaden, um mehr über die Mitwirkung an diesem Projekt zu erfahren. Bitte beachten Sie, dass dieses Projekt mit einem Verhaltenskodex für Mitwirkende veröffentlicht wird. Durch die Teilnahme an diesem Projekt erklären Sie sich mit den Bedingungen einverstanden.