GitHub-Projektseite von shopwareLabs/extension-verifier mit Shopware-Logo. Das Tool dient zur Analyse und Validierung von Shopware-Erweiterungen. Darunter Angaben: 6 Mitwirkende, 4 Issues, 23 Sterne, 3 Forks.

Einleitung Shopware Extension Verifier

Der Extension Verifier ist ein leistungsstarkes Tool von Shopware, das speziell für die Analyse, Formatierung und Refaktorisierung von Erweiterungen (Plugins/Apps) entwickelt wurde. Es kombiniert mehrere bekannte Werkzeuge wie ESLint, PHPStan, Rector, Stylelint und PHP-CS-Fixer, um eine umfassende Prüfung und Optimierung von Code zu ermöglichen. Der Extension Verifier ist besonders nützlich, um sicherzustellen, dass Erweiterungen den Shopware-Standards entsprechen und mit verschiedenen Versionen kompatibel sind.

Installation und Einrichtung

Voraussetzungen

Docker: Der Extension Verifier wird ausschließlich als Docker-Image bereitgestellt.

GitHub Actions (optional): Für automatisierte Prüfungen in CI/CD-Pipelines.

 

Installation

Docker-Befehl zur Nutzung des Tools:

Code:
          

docker run --rm ghcr.io/shopwarelabs/extension-verifier:latest
 

Hinweis: Der Tag latest verweist immer auf die neueste Version. Es wird empfohlen, eine spezifische Version zu verwenden, um Konsistenz zu gewährleisten.

Integration in GitHub Actions:

Code:
          

jobs:
 check:
   runs-on: ubuntu-24.04
   strategy:
     fail-fast: false
     matrix:
       version-selection: [ 'lowest', 'highest' ]
   steps:
     - name: Checkout
       uses: actions/checkout@v4
     - name: Check extension
       uses: shopware/github-actions/extension-verifier@main
       with:
         action: check
         check-against: ${{ matrix.version-selection }}

Hauptfunktionen

Codeprüfung: Analysiert den Code auf Kompatibilität mit Shopware-Versionen und Coding-Standards.

Formatierung: Automatische Anwendung der Shopware-Coding-Standards mit PHP-CS-Fixer.

Refaktorisierung: Vorschläge zur Verbesserung des Codes durch Rector und ESLint.

Berichtserstellung: Unterstützung verschiedener Ausgabeformate wie JSON, JUnit oder Markdown.

Projektweite Scans: Möglichkeit, ganze Projekte anstelle einzelner Erweiterungen zu prüfen.

Vorteile von Shopware Extension Verifier

Zeitersparnis: Automatisierte Prüfungen reduzieren den manuellen Aufwand erheblich.

Fehlerreduktion: Frühzeitige Erkennung von Problemen minimiert das Risiko von Laufzeitfehlern.

Konsistenz: Sicherstellung einheitlicher Coding-Standards in allen Erweiterungen.

Flexibilität: Anpassbare Konfigurationen für spezifische Projektanforderungen.

Verwendung des Extension Verifiers

Codeprüfung

Prüfen Sie die Kompatibilität Ihrer Erweiterung mit verschiedenen Shopware-Versionen:

Code:
          

docker run --rm -v $(pwd):/ext ghcr.io/shopwarelabs/extension-verifier:latest check /ext --check-against lowest
docker run --rm -v $(pwd):/ext ghcr.io/shopwarelabs/extension-verifier:latest check /ext --check-against highest

docker run --rm -v $(pwd):/ext ghcr.io/shopwarelabs/extension-verifier:latest check /ext --check-against lowest
docker run --rm -v $(pwd):/ext ghcr.io/shopwarelabs/extension-verifier:latest check /ext --check-against highest
 

Formatierung

Formatieren Sie den Code gemäß den Shopware-Coding-Standards:

Code:
          

docker run --rm -v $(pwd):/ext ghcr.io/shopwarelabs/extension-verifier:latest format /ext
 

Für einen Testlauf ohne Änderungen verwenden Sie den Dry-Run-Modus:

 

bash

Code:
          

docker run --rm -v $(pwd):/ext ghcr.io/shopwarelabs/extension-verifier:latest format /ext --dry-run
 

Refaktorisierung
Refaktorieren Sie Ihren Code automatisch mit Rector und ESLint:

Code:
          

docker run --rm -v $(pwd):/ext ghcr.io/shopwarelabs/extension-verifier:latest fix /ext
 

Warnung: Erstellen Sie vor der Ausführung ein Backup Ihrer Dateien, da Änderungen vorgenommen werden.

Integration in CI/CD-Pipelines

Der Extension Verifier kann nahtlos in CI/CD-Pipelines integriert werden, um die Qualitätssicherung zu automatisieren. Hier ein Beispiel für GitLab CI:

 

text

Code:
          

stages:
 - analyze

extension_verifier:
 stage: analyze
 image: ghcr.io/shopwarelabs/extension-verifier:latest
 script:
   - docker run --rm -v $(pwd):/ext ghcr.io/shopwarelabs/extension-verifier:latest check /ext --check-against lowest
   - docker run --rm -v $(pwd):/ext ghcr.io/shopwarelabs/extension-verifier:latest check /ext --check-against highest
 

Tools sind im Extension Verifier

Der Extension Verifier umfasst die folgenden Werkzeuge:

ESLint (JavaScript-Linting)

PHPStan (PHP-Codeanalyse)

Rector (PHP-Codeverbesserung)

Stylelint (CSS-Linting)

PHP-CS-Fixer (PHP-Codeformatierung)

Tipp: Wiel lassen sich Fehler ignorien?

Erstellen Sie eine .shopware-extension.yaml im Stammverzeichnis Ihrer Erweiterung:

Code:
          

validation:
 ignore:
   - identifier: 'Shopware.SomeError'
   - message: 'Specific error message'
     path: 'path/to/file.php'

CYPRESS.IO Ambassador und IT Consultant für QA Engenieering und Qualität in PHP Projekten.

Erreichen Sie unsere PHP Consultant Spezialisten

Wir sind Experten für PHP und helfen Ihnen, Ihre digitalen Herausforderungen zu meistern. Unser erfahrenes Team unterstützt Sie bei PHP Updates, PHP Refactoring und berät Sie remote zu allen Fragen rund um PHP. Mit unseren vollautomatischen CI/CD Deployments und einer robusten Docker-Infrastruktur bringen wir Ihre PHP-Projekte auf das nächste Level. Vertrauen Sie auf unsere Expertise für zuverlässige und skalierbare PHP-Lösungen.

Häufig gestellte Fragen (FAQ)

Kann ich ganze Projekte scannen?

Ja, geben Sie einfach den Pfad zum Projektstamm anstelle des Erweiterungspfads an. Konfigurationsdateien wie phpstan.neon oder .php-cs-fixer.dist.php sollten im Projektstamm platziert werden.

Was passiert bei fehlenden Abhängigkeiten?

Wenn Ihre Erweiterung Klassen aus shopware/storefront oder shopware/elasticsearch verwendet, müssen diese in der composer.json unter require oder require-dev hinzugefügt werden.

Fazit

Der Extension Verifier ist ein unverzichtbares Werkzeug für Entwickler, die qualitativ hochwertige Shopware-Erweiterungen erstellen möchten. Durch die Kombination leistungsstarker Analysewerkzeuge bietet er eine umfassende Lösung zur Verbesserung der Codequalität, Einhaltung von Standards und Sicherstellung der Kompatibilität mit verschiedenen Shopware-Versionen. Mit seiner einfachen Integration in CI/CD-Pipelines ermöglicht er eine effiziente und automatisierte Qualitätssicherung.

Weiterführende Ressourcen