Pack php

Gilt, wenn: Das Repository enthält PHP-Code: eine composer.json (oder composer/composer.json) oder mindestens eine *.php-Datei außerhalb von vendor/.

Diagramm

flowchart TD
  subgraph t_safety_net["Safety Net"]
    s_composer["Composer"]
    s_psr_4["PSR-4 Autoloading"]
    s_roave_bc_check["Roave Backward Compatibility Check"]
    s_php_cs_fixer_adoption["PHP CS Fixer"]
    s_pint["Laravel Pint"]
    s_ecs["Easy Coding Standard"]
    s_phpcs["PHP_CodeSniffer"]
    s_phpunit["PHPUnit"]
    s_phpstan_level_0["PHPStan Level 0"]
    s_phpstan_level_1["PHPStan Level 1"]
    s_phpstan_level_2["PHPStan Level 2"]
    s_phpstan_level_3["PHPStan Level 3"]
    s_phpstan_level_4["PHPStan Level 4"]
    s_phpstan_level_5["PHPStan Level 5"]
    s_psalm["Psalm"]
    s_rector_php_set["Rector: PHP Set"]
    s_rector_dead_code["Rector: Dead Code Set"]
    s_rector_code_quality["Rector: Code Quality Set"]
    s_rector_type_coverage["Rector: Type Coverage Set"]
    r_testing(["Testing"])
    r_static_analysis(["Static Analysis"])
    r_code_style(["Code Style"])
  end
  subgraph t_guardrails["Guardrails"]
    s_php_cs_fixer_rollout["PHP CS Fixer Rollout"]
    s_phpmd_adoption["PHPMD"]
    s_phpmd_rollout["PHPMD Rollout"]
    s_coverage_floor["Test Coverage Floor"]
    s_coverage_metadata_required["Test Coverage: Metadata Required"]
    s_coverage_metadata_strict["Test Coverage: Strict Metadata"]
    s_infection["Infection"]
    s_pest_mutate["Pest Mutation Testing"]
    s_phpstan_level_6["PHPStan Level 6"]
    s_phpstan_level_7["PHPStan Level 7"]
    s_phpstan_level_8["PHPStan Level 8"]
    s_phpstan_level_9["PHPStan Level 9"]
    s_phpstan_level_10["PHPStan Level 10"]
    s_phpstan_deprecation_rules["PHPStan Deprecation Rules"]
    s_rector_phpunit_set["Rector: PHPUnit Set"]
    s_psalm_taint_analysis["Psalm Taint Analysis"]
    s_semgrep["Semgrep (OWASP Top 10)"]
  end
  x_ci_runner["CI Runner (generic)"]
  x_editorconfig[".editorconfig (generic)"]
  s_composer --> s_psr_4
  s_composer --> s_roave_bc_check
  x_ci_runner -.-> s_roave_bc_check
  s_composer --> s_php_cs_fixer_adoption
  x_editorconfig -.-> s_php_cs_fixer_adoption
  s_php_cs_fixer_adoption --> s_php_cs_fixer_rollout
  s_composer --> s_pint
  s_composer --> s_ecs
  s_composer --> s_phpcs
  s_composer --> s_phpmd_adoption
  s_phpmd_adoption --> s_phpmd_rollout
  s_composer --> s_phpunit
  s_phpunit --> s_coverage_floor
  s_coverage_floor --> s_coverage_metadata_required
  s_coverage_metadata_required --> s_coverage_metadata_strict
  s_phpunit --> r_testing
  r_testing --> s_infection
  s_coverage_floor -.-> s_infection
  r_testing --> s_pest_mutate
  s_composer --> s_phpstan_level_0
  s_phpstan_level_0 --> s_phpstan_level_1
  s_phpstan_level_1 --> s_phpstan_level_2
  s_phpstan_level_2 --> s_phpstan_level_3
  s_phpstan_level_3 --> s_phpstan_level_4
  s_rector_dead_code -.-> s_phpstan_level_4
  s_phpstan_level_4 --> s_phpstan_level_5
  s_rector_type_coverage -.-> s_phpstan_level_5
  s_phpstan_level_5 --> s_phpstan_level_6
  s_phpstan_level_6 --> s_phpstan_level_7
  s_phpstan_level_7 --> s_phpstan_level_8
  s_phpstan_level_8 --> s_phpstan_level_9
  s_phpstan_level_9 --> s_phpstan_level_10
  s_phpstan_level_5 --> s_phpstan_deprecation_rules
  s_composer --> s_psalm
  s_phpstan_level_0 --> r_static_analysis
  s_psalm --> r_static_analysis
  r_static_analysis --> s_rector_php_set
  s_php_cs_fixer_adoption --> r_code_style
  s_pint --> r_code_style
  s_ecs --> r_code_style
  s_phpcs --> r_code_style
  r_code_style -.-> s_rector_php_set
  s_rector_php_set --> s_rector_dead_code
  r_code_style -.-> s_rector_dead_code
  s_rector_php_set --> s_rector_code_quality
  r_code_style -.-> s_rector_code_quality
  s_phpunit --> s_rector_phpunit_set
  s_rector_code_quality -.-> s_rector_phpunit_set
  r_code_style -.-> s_rector_phpunit_set
  s_composer --> s_rector_type_coverage
  s_rector_dead_code -.-> s_rector_type_coverage
  s_rector_code_quality -.-> s_rector_type_coverage
  r_code_style -.-> s_rector_type_coverage
  s_phpstan_level_3 -.-> s_rector_type_coverage
  s_roave_bc_check -.-> s_rector_type_coverage
  s_phpstan_level_4 -->|one of| s_psalm_taint_analysis
  s_psalm -->|one of| s_psalm_taint_analysis
  x_ci_runner -.-> s_semgrep
  classDef onRequest stroke-dasharray: 6 4
  class s_infection,s_psalm_taint_analysis,s_semgrep onRequest
  classDef recognized stroke-dasharray: 2 2
  class s_pint,s_ecs,s_phpcs,s_pest_mutate,s_psalm recognized

Durchgezogener Pfeil: setzt voraus · gestrichelter Pfeil: wartet auf · durchgezogener Rahmen: empfohlen · gestrichelter Rahmen: auf Anfrage · gepunkteter Rahmen: erkannt

Tools

Tool Status Rollen Nutzt Mindest-Runtime Details
Composer (composer) recommended Package Management Composer – packs/php/composer.md
PSR-4 Autoloading (psr-4) recommended Autoloading – – packs/php/psr-4.md
Roave Backward Compatibility Check (roave-bc-check) recommended API Compatibility roave-backward-compatibility-check – packs/php/roave-bc-check.md
PHP CS Fixer (php-cs-fixer) recommended Code Style php-cs-fixer php 5.3 packs/php/php-cs-fixer.md
Laravel Pint (pint) recognized Code Style Laravel Pint – packs/php/pint.md
Easy Coding Standard (ecs) recognized Code Style Easy Coding Standard – packs/php/ecs.md
PHP_CodeSniffer (phpcs) recognized Code Style PHP_CodeSniffer – packs/php/phpcs.md
PHPMD (phpmd) recommended Code Smell Detection PHPMD – packs/php/phpmd.md
PHPUnit (phpunit) recommended Testing PHPUnit php 5.3 packs/php/phpunit.md
Test Coverage Floor (test-coverage-floor) recommended Test Coverage PHPUnit – packs/php/coverage-floor.md
Infection (infection) on-request Mutation Testing Infection php 7.0 packs/php/infection.md
Pest Mutation Testing (pest-mutate) recognized Mutation Testing Pest – packs/php/pest-mutate.md
PHPStan (phpstan) recommended Static Analysis PHPStan php 7.0 packs/php/phpstan.md
Psalm (psalm) recognized Static Analysis vimeo/psalm – packs/php/psalm.md
Rector (rector) recommended Automated Refactoring Rector – packs/php/rector.md
Psalm Taint Analysis (psalm-taint-analysis) on-request Taint Analysis vimeo/psalm – packs/php/psalm.md
Semgrep (OWASP Top 10) (semgrep) on-request Static Security Analysis Semgrep – packs/php/semgrep.md

Stufen

Stufe Tool Track Setzt voraus Wartet auf Gilt, wenn
Composer (composer) composer Safety Net – – –
PSR-4 Autoloading (psr-4) psr-4 Safety Net composer – –
Roave Backward Compatibility Check (roave-bc-check) roave-bc-check Safety Net composer ci-runner Das BC-Versprechen des Projekts (die BC-promise-Operation seiner Tracker-Datei) folgt Semantic Versioning, und das Repository hat mindestens einen Git-Tag der Form x.y.z. Ein ungeklärtes BC-Versprechen zählt nicht.
PHP CS Fixer (php-cs-fixer-adoption) php-cs-fixer Safety Net composer editorconfig –
PHP CS Fixer Rollout (php-cs-fixer-rollout) php-cs-fixer Guardrails php-cs-fixer-adoption – –
Laravel Pint (pint) pint Safety Net composer – –
Easy Coding Standard (ecs) ecs Safety Net composer – –
PHP_CodeSniffer (phpcs) phpcs Safety Net composer – –
PHPMD (phpmd-adoption) phpmd Guardrails composer – –
PHPMD Rollout (phpmd-rollout) phpmd Guardrails phpmd-adoption – –
PHPUnit (phpunit) phpunit Safety Net composer – –
Test Coverage Floor (coverage-floor) test-coverage-floor Guardrails phpunit – –
Test Coverage: Metadata Required (coverage-metadata-required) test-coverage-floor Guardrails coverage-floor – –
Test Coverage: Strict Metadata (coverage-metadata-strict) test-coverage-floor Guardrails coverage-metadata-required – Das Projekt führt seine Tests mit PHPUnit 10 oder neuer aus, nicht mit Pest.
Infection (infection) infection Guardrails testing (Rolle) coverage-floor –
Pest Mutation Testing (pest-mutate) pest-mutate Guardrails testing (Rolle) – –
PHPStan Level 0 (phpstan-level-0) phpstan Safety Net composer – –
PHPStan Level 1 (phpstan-level-1) phpstan Safety Net phpstan-level-0 – –
PHPStan Level 2 (phpstan-level-2) phpstan Safety Net phpstan-level-1 – –
PHPStan Level 3 (phpstan-level-3) phpstan Safety Net phpstan-level-2 – –
PHPStan Level 4 (phpstan-level-4) phpstan Safety Net phpstan-level-3 rector-dead-code –
PHPStan Level 5 (phpstan-level-5) phpstan Safety Net phpstan-level-4 rector-type-coverage –
PHPStan Level 6 (phpstan-level-6) phpstan Guardrails phpstan-level-5 – –
PHPStan Level 7 (phpstan-level-7) phpstan Guardrails phpstan-level-6 – –
PHPStan Level 8 (phpstan-level-8) phpstan Guardrails phpstan-level-7 – –
PHPStan Level 9 (phpstan-level-9) phpstan Guardrails phpstan-level-8 – –
PHPStan Level 10 (phpstan-level-10) phpstan Guardrails phpstan-level-9 – –
PHPStan Deprecation Rules (phpstan-deprecation-rules) phpstan Guardrails phpstan-level-5 – –
Psalm (psalm) psalm Safety Net composer – –
Rector: PHP Set (rector-php-set) rector Safety Net static-analysis (Rolle) code-style (Rolle) –
Rector: Dead Code Set (rector-dead-code) rector Safety Net rector-php-set code-style (Rolle) –
Rector: Code Quality Set (rector-code-quality) rector Safety Net rector-php-set code-style (Rolle) –
Rector: PHPUnit Set (rector-phpunit-set) rector Guardrails phpunit rector-code-quality, code-style (Rolle) –
Rector: Type Coverage Set (rector-type-coverage) rector Safety Net composer rector-dead-code, rector-code-quality, code-style (Rolle), phpstan-level-3, roave-bc-check –
Psalm Taint Analysis (psalm-taint-analysis) psalm-taint-analysis Guardrails eines von phpstan-level-4, psalm – –
Semgrep (OWASP Top 10) (semgrep) semgrep Guardrails – ci-runner –