Never Code Alone Logo Never Code Alone
Logo von PHP Architecture Tester, mit einem sechseckigen Symbol in Blau und Schwarz, das den Text "phparchitecturetester" enthält.

PHP Architecture Tester (phpat)

Der PHP Architecture Tester (phpat) ist ein Tool zur Überprüfung der Architekturkonformität von PHP-Projekten. Es hilft Entwicklern, sicherzustellen, dass bestimmte Architekturschichten und Abhängigkeiten korrekt strukturiert sind, was besonders für Refactoring und die Arbeit mit Legacy Code wichtig ist. Unsere Agentur setzt phpat in vielen Projekten ein und integriert es nahtlos in GitLab CI/CD-Pipelines, um sicherzustellen, dass Architekturprinzipien kontinuierlich eingehalten werden.

Installation und Einrichtung

Die Installation von phpat ist unkompliziert und erfordert nur wenige Schritte:

Installieren Sie das Tool über Composer:
composer require --dev carlosas/phpat


Initialisieren Sie phpat, indem Sie eine Konfigurationsdatei (phpat.yml) im Stammverzeichnis Ihres Projekts erstellen. Diese Datei definiert die Architekturrichtlinien, die überprüft werden sollen.

Beispiel für eine einfache Konfiguration:
paths:
 - src
rules:
 - name: "Controllers dürfen nur Services verwenden"
   source:
     classes:
       - App\Controller\*
   destination:
     classes:
       - App\Service\*
   mustDependOn:
     - App\Service\*

Mögliche Stolpersteine:

  • Achten Sie darauf, dass die Verzeichnisse korrekt definiert sind und dass alle notwendigen Abhängigkeiten installiert sind.

Konfiguration und Anpassung

Die Konfiguration von phpat erfolgt über eine YAML-Datei, in der die Struktur und Regeln Ihrer Projektarchitektur festgelegt werden. Es ist wichtig, die Regeln so anzupassen, dass sie den spezifischen Anforderungen Ihrer Codebasis entsprechen.

Empfohlene Best Practices:

  • Verwenden Sie phpat, um sicherzustellen, dass nur bestimmte Module aufeinander zugreifen, z.B. dass Controller nur auf Services und nicht auf Repositorys zugreifen dürfen.
  • Definieren Sie klare Schichten für Ihr Projekt (z.B. Controller, Service, Repository), um Abhängigkeiten sauber zu trennen.

Vorteile:

  • Sie stellen sicher, dass Ihre Projektarchitektur übersichtlich und wartbar bleibt.
  • Sie verhindern, dass unerwünschte Abhängigkeiten zwischen verschiedenen Schichten entstehen.

Verwendung von PHP Architecture Tester (phpat)

phpat wird verwendet, um Ihre PHP-Codebasis auf architekturkonforme Abhängigkeiten zu prüfen. Es zeigt potenzielle Architekturverletzungen auf und hilft, die Struktur und Modularität Ihres Projekts zu erhalten.

Praktische Anwendungsfälle:

  • Sicherstellen, dass Controller nur auf Services zugreifen und nicht direkt auf Repositorys.
  • Überprüfung, dass bestimmte Klassen oder Module keine unerlaubten Abhängigkeiten haben.

Beispiel zur Ausführung:
vendor/bin/phpat

Das Tool wird die definierten Architekturregeln überprüfen und eventuelle Verstöße aufzeigen, sodass Sie Anpassungen vornehmen können, um die Wartbarkeit und Konsistenz Ihres Codes zu verbessern.

Integration in CI/CD-Pipelines

Unsere Agentur hat phpat erfolgreich in GitLab CI/CD-Pipelines integriert, um bei jedem Commit automatisch die Einhaltung der Architekturregeln zu überprüfen.

Beispiel einer GitLab CI-Konfiguration:
phpat_analysis:
 stage: test
 script:
   - vendor/bin/phpat
 only:
   - merge_requests

Vorteile der Integration:

  • Verhindern von Architekturverletzungen bei jedem Merge.
  • Automatisierte Überprüfung der Codebasis auf strukturelle Probleme.
  • Sicherstellen einer konsistenten und skalierbaren Code-Architektur.

Häufig gestellte Fragen (FAQ)

Was ist PHP Architecture Tester (phpat)?

phpat ist ein Tool zur Überprüfung der Architekturregeln in PHP-Projekten, um sicherzustellen, dass der Code den definierten Architekturprinzipien entspricht.

Warum ist phpat wichtig für PHP-Projekte?

Es hilft, die Struktur des Codes sauber zu halten, unerwünschte Abhängigkeiten zu vermeiden und die Wartbarkeit langfristig zu sichern.

Wie konfiguriere ich phpat?

Die Konfiguration erfolgt über eine YAML-Datei, in der Sie festlegen, welche Schichten wie miteinander interagieren dürfen.

Kann ich eigene Regeln für die Architekturprüfung festlegen?

Ja, Sie können benutzerdefinierte Regeln erstellen, die auf die spezifische Struktur Ihres Projekts zugeschnitten sind.

Wie integriere ich phpat in meine CI/CD-Pipeline?

Sie können es als Schritt in Ihrer GitLab CI/CD-Pipeline hinzufügen, um bei jedem Commit eine Architekturprüfung durchzuführen.

Ist phpat für Legacy Code geeignet?

Ja, es ist besonders hilfreich, um alte Projekte zu refaktorisieren und zu einer saubereren Architektur zu bringen.

Welche PHP-Versionen werden von phpat unterstützt?

phpat unterstützt alle aktuellen PHP-Versionen, die auch mit Composer kompatibel sind.

Was tun, wenn phpat viele Architekturverstöße meldet?

Passen Sie die Konfiguration schrittweise an und arbeiten Sie gezielt an den gemeldeten Verstößen, um die Architektur schrittweise zu verbessern.

Wie verbessere ich die Performance von phpat in großen Projekten?

Sie können die Analyse auf bestimmte Verzeichnisse oder Module beschränken, um die Performance zu optimieren.

Gibt es Alternativen zu phpat?

Einige Teams setzen manuelle Code-Reviews oder andere Architektur-Tools ein, aber phpat bietet eine spezifische und automatisierte Lösung für PHP-Projekte.

Fazit

Der PHP Architecture Tester (phpat) ist ein unverzichtbares Tool, um die Architektur von PHP-Projekten zu prüfen und sicherzustellen, dass die definierten Regeln eingehalten werden. Durch die Integration in CI/CD-Pipelines und die kontinuierliche Überprüfung helfen wir Ihnen, saubere und wartbare Architekturen zu erhalten. Unsere Agentur hat umfassende Erfahrung mit der Implementierung von phpat und unterstützt Sie bei der Optimierung Ihrer Codebasis. Kontaktieren Sie uns gerne für Unterstützung bei der Einrichtung oder Anpassung.

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

Erreichen Sie unsere Spezialisten zu barrierefreien Webdesign

Wir sind hier, um Ihnen zu helfen. Gemeinsam meistern wir Ihre digitalen Herausforderungen und fördern die Inklusion im Internet. Lassen Sie uns Ihre Projekte mit barrierefreiem Webdesign erfolgreich machen.