Never Code Alone Logo Never Code Alone
Illustration eines Schweizer Taschenmessers als Symbol für ein vielseitiges Tool zur Softwareentwicklung. Das Taschenmesser zeigt verschiedene Werkzeuge, wie Schere, Schraubenzieher und Messer, die für verschiedene Aufgaben ausklappbar sind. Auf jedem Werkzeug stehen Begriffe wie 'Class Finalization', 'Constant Privatization', 'Class Privatization', und 'Constants Privatization'. Diese Begriffe deuten auf verschiedene Refactoring- oder Optimierungstechniken für den Code hin, die das Tool unterstützt. Der Hintergrund zeigt Codeausschnitte und Begriffe, die den Eindruck von Programmieraufgaben und Softwareentwicklung verstärken. Das Bild symbolisiert, dass dieses 'Swiss Knife Tool' ein Allzweckwerkzeug für verschiedene Entwicklungsprozesse ist.

Swiss Knife

Swiss Knife ist ein Tool, das verschiedene Refactorings automatisiert. Es finalisiert Klassen ohne Kindklassen, macht Konstanten privat und nimmt andere Verbesserungen vor, um deinen Code sicherer und effizienter zu machen.

  • Welche Vorteile bietet Swiss Knife?
    Das Tool automatisiert oft lästige, aber notwendige Refactorings, wie das Schließen von Klassen und Privatisieren von Konstanten. Dies reduziert Sicherheitsrisiken und macht den Code wartbarer.

  • Wann solltest du Swiss Knife verwenden?
    Verwende Swiss Knife, wenn du PHPStan auf Level 3 oder 4 gebracht hast. Es ist besonders nützlich, wenn du regelmäßig Refactorings durchführen möchtest, ohne viel Zeit manuell zu investieren.

  • Wie wird Swiss Knife installiert und genutzt?
    Installation:

    lua

    composer require rector/swiss-knife --dev


    Erste Befehle:

    bash

    vendor/bin/swiss-knife finalize-classes /src /tests
    vendor/bin/swiss-knife privatize-constants /src /tests

  • Warum sollte ich Swiss Knife verwenden?
    Swiss Knife automatisiert wiederkehrende Refactorings, die den Code robuster und wartbarer machen. Es spart dir Zeit bei der manuellen Umstellung und sorgt dafür, dass dein Code modernen Best Practices entspricht.

  • Wann sollte ich Swiss Knife in meinem Projekt verwenden?
    Sobald du PHPStan auf Level 3 oder 4 gebracht hast und sicherstellen möchtest, dass dein Code so effizient und sicher wie möglich ist, kannst du Swiss Knife einsetzen, um Routineaufgaben zu automatisieren.

  • Wie hilft Swiss Knife meinem Code langfristig?
    Indem es Klassen schließt und Konstanten privatisiert, macht es den Code sicherer und leichter wartbar. Zudem reduziert es das Risiko von Fehlern, die durch unsachgemäße Vererbung oder übermäßigen Zugriff auf Konstanten entstehen.

Tipps zur Nutzung von Swiss Knife CLI

Diese Tipps und Kommandos helfen dir, das Swiss Knife CLI-Tool optimal zu nutzen, um die Qualität deines PHP-Projekts zu verbessern und eine nahtlose CI-Integration zu gewährleisten.

  • PSR-4 Autoloading auf 100 % bringen
    PSR-4 Autoloading sorgt für ein schnelleres Laden des Projekts und hilft, den Code besser zu strukturieren. So kannst du PSR-4 Autoloading sicherstellen:

    • Führe den folgenden Befehl aus, um mehrere Klassen in einer Datei zu finden und zu separaten Dateien zu extrahieren:
    • Falls du mehrere PSR-4-Namensräume in deiner composer.json zusammenführen möchtest, verwende diesen Befehl, um die Namensräume der Dateien anzupassen:

    vbnet
    vendor/bin/swiss-knife namespace-to-psr-4 src --namespace-root "App\\"

    bash
    vendor/bin/swiss-knife find-multi-classes /src

  • Unit Tests erkennen
    Wenn du Unit Tests von anderen Testarten isolieren möchtest, kannst du Swiss Knife nutzen, um Tests ohne Abhängigkeit von Kernel oder Containern zu identifizieren:

    bash
    vendor/bin/swiss-knife detect-unit-tests /tests

  • Spotter-Kommandos für CI-Integration
    Diese Kommandos sind nützlich, um potenzielle Probleme vor dem Mergen eines Pull Requests zu erkennen:

    • Kommentierten Code finden und entfernen: Kommentierter Code kann veraltet sein und sollte entfernt werden. Mit folgendem Befehl kannst du nach Kommentaren suchen und diese automatisiert entfernen:Um nur Kommentare über einer bestimmten Anzahl an Zeilen zu erkennen, kannst du die --line-limit Option verwenden:
    • Konflikte im Code erkennen: Um sicherzustellen, dass keine Konflikte unbemerkt im Code bleiben, füge diesen Befehl deiner CI hinzu:
    • Zu lange Dateipfade validieren: Wenn du auf Windows arbeitest, können zu lange Dateipfade ein Problem sein. Dieser Befehl hilft, solche Probleme zu vermeiden:

    bash
    vendor/bin/swiss-knife validate-file-length /src /tests

    bash
    vendor/bin/swiss-knife check-conflicts src tests

    css
    vendor/bin/swiss-knife check-commented-code /src --line-limit 5

    bash
    vendor/bin/swiss-knife check-commented-code /src
     

  • Dateien ändern und verbessern:

    • Editorconfig erstellen: Um einheitliche Formatierungen in deinem Projekt sicherzustellen, kannst du automatisch eine .editorconfig Datei erstellen:
    • Klassen finalisieren: Das Finalisieren von Klassen ermöglicht es Tools wie PHPStan oder Rector, sicherere Änderungen vorzunehmen, z.B. das Hinzufügen von Rückgabewert-Deklarationen:
    • JSON-Dateien lesbarer machen: Falls du JSON-Dateien analysierst oder mit Testdaten arbeitest, kann es hilfreich sein, sie in einem lesbaren Format darzustellen:

    bash
    vendor/bin/swiss-knife pretty-json phpstan-result.json

    bash
    vendor/bin/swiss-knife finalize-classes /src /tests

    bash
    vendor/bin/swiss-knife dump-editorconfig

     

  • Verborgene Funktionen entdecken
    Viele der Swiss Knife Kommandos haben zusätzliche Optionen, die mit der --help Option aufgerufen werden können. Dies kann dir helfen, verborgene Funktionen zu entdecken, die deine Arbeit noch effizienter machen.

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

Erreichen Sie unsere PHP Consultants 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.