Editor Settings (editor-settings) |
Die grundlegenden Formatierungskonventionen (Einrückung, Zeichensatz, Zeilenenden) sind einmal festgehalten, für jeden Editor. |
– |
.editorconfig (recommended, generic) |
Continuous Integration (continuous-integration) |
Eine Pipeline, die die Qualitätsjobs bei jeder Änderung ausführt. |
– |
CI Runner (recommended, generic) |
Package Management (package-management) |
Abhängigkeiten werden von einem Paketmanager deklariert und installiert. |
– |
Composer (recommended, php) |
Autoloading (autoloading) |
Klassen werden über eine Konvention gefunden, nicht über von Hand geschriebene Includes. |
– |
PSR-4 Autoloading (recommended, php) |
Code Style (code-style) |
Ein automatischer Fixer hält den Code in einem Stil, damit spätere automatisierte Umschreibungen formatiert ankommen. |
– |
PHP CS Fixer (recommended, php); Laravel Pint (recognized, php); Easy Coding Standard (recognized, php); PHP_CodeSniffer (recognized, php); Twig-CS-Fixer (recommended, twig-php) |
Testing (testing) |
Eine Testsuite, die lokal läuft und Regressionen abfängt. |
– |
PHPUnit (recommended, php) |
Test Coverage (test-coverage) |
Der Anteil des Codes, den die Tests erreichen, wird gemessen und darf nicht sinken. |
Untested / hard-to-test |
Test Coverage Floor (recommended, php) |
Mutation Testing (mutation-testing) |
Kleine Fehler werden einzeln in den Code eingebaut, und die Tests müssen jeden bemerken: Sie werden danach beurteilt, was sie fangen, nicht danach, was sie erreichen. |
Untested / hard-to-test |
Infection (on-request, php); Pest Mutation Testing (recognized, php) |
Static Analysis (static-analysis) |
Ein Tool liest den Code, ohne ihn auszuführen, und meldet Fehler, auf einer Strenge, die das Projekt Schritt für Schritt anhebt. |
– |
PHPStan (recommended, php); Psalm (recognized, php); TwigStan (recommended, twig-php) |
Taint Analysis (taint-analysis) |
Ein Tool verfolgt Daten von nicht vertrauenswürdiger Eingabe bis zu gefährlichen Operationen. |
Security |
Psalm Taint Analysis (on-request, php) |
API Compatibility (api-compatibility) |
Ein Check vergleicht den Code mit dem letzten Release und schlägt fehl, wenn etwas bricht, das das BC-Versprechen des Projekts abdeckt. |
– |
Roave Backward Compatibility Check (recommended, php) |
Automated Refactoring (automated-refactoring) |
Regelsätze schreiben Code mechanisch um, ein reviewbarer Satz nach dem anderen. |
– |
Rector (recommended, php) |
Code Smell Detection (code-smell-detection) |
Ein Tool misst Komplexität und markiert Code, der schwer zu lesen ist. |
Understandability |
PHPMD (recommended, php) |
Secret Scanning (secret-scanning) |
Committete Secrets und Zugangsdaten werden gefunden, bevor sie ausgeliefert werden. |
– |
Secret Detection (on-request, generic) |
Static Security Analysis (static-security-analysis) |
Ein regelbasierter Scanner sucht im Quellcode nach verbreiteten Schwachstellenmustern. |
Security |
Semgrep (OWASP Top 10) (on-request, php) |