Rector für PHP: Vollständiges Handbuch mit Beispielen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Rector für PHP: Vollständiges Handbuch mit Beispielen

Rector ist ein leistungsstarkes Tool zur automatischen Refaktorisierung von PHP-Code. Es handelt sich um eine Bibliothek, die Ihren Code mithilfe eines abstrakten Syntaxbaums (AST) analysiert und vorgegebene Transformationsregeln anwendet. So lassen sich Routineaufgaben wie die Aktualisierung auf neue PHP-Versionen, die Einführung neuer Sprachfeatures, die Korrektur veralteter Konstrukte und die allgemeine Verbesserung der Codequalität automatisieren.

Warum braucht man Rector? In der modernen PHP-Entwicklung wachsen Projekte schnell, und es wird immer schwieriger, sie auf dem neuesten Stand zu halten. Manuelles Refaktorisieren von Tausenden von Codezeilen ist zeitaufwändig und fehleranfällig. Rector löst dieses Problem, indem es komplexe Transformationen in Sekundenschnelle durchführt. Besonders nützlich ist es beim Upgrade von PHP 7.x auf 8.x, beim Wechsel von veralteten Frameworks (z. B. von Zend Framework 1 auf Laminas) oder bei der Einführung von strengen Typen und modernen Patterns.

Rector arbeitet nach dem Prinzip "Regelsätze". Sie legen fest, welche Transformationen durchgeführt werden sollen (z. B. "Ersetze alle Aufrufe von array_* durch str_*-Funktionen"), und Rector findet alle passenden Stellen im Code und nimmt die Änderungen vor. Das Tool ist vollständig anpassbar: Sie können vorgefertigte Regelsätze aus der Community verwenden oder eigene erstellen. Rector lässt sich in CI/CD-Pipelines integrieren, sodass Code bei jedem Commit automatisch überprüft und korrigiert werden kann.

Installation

Rector wird über Composer installiert, den Standard-Paketmanager für PHP. Führen Sie folgenden Befehl im Stammverzeichnis Ihres Projekts aus:

composer require rector/rector --dev

Das Flag --dev bedeutet, dass das Paket nur für die Entwicklung installiert wird. Dies ist eine bewährte Praxis, da Rector in der Produktionsumgebung nicht benötigt wird.

Überprüfen Sie nach der Installation, ob alles funktioniert:

vendor/bin/rector --version

Wenn Sie eine globale Installation verwenden (für Projekte nicht empfohlen), können Sie Folgendes ausführen:

composer global require rector/rector

Für den Betrieb benötigt Rector PHP 7.2 oder höher. Wir empfehlen die Verwendung von PHP 8.0+ für maximale Leistung und Unterstützung aller Funktionen.

Schnellstart: Minimales Arbeitsbeispiel

Erstellen wir eine einfache PHP-Datei, die refaktorisiert werden soll. Angenommen, wir haben veralteten Code, der create_function() verwendet, eine Funktion, die in PHP 8.0 entfernt wurde.

Schritt 1: Erstellen Sie die Datei example.php:

<?php

$oldFunction = create_function('$a, $b', 'return $a + $b;');
echo $oldFunction(1, 2); // Gibt 3 aus

Schritt 2: Erstellen Sie die Konfigurationsdatei rector.php im Projektstammverzeichnis:

<?php

declare(strict_types=1);

use Rector\Config\RectorConfig;
use Rector\Php80\Rector\Function_\CreateFunctionToAnonymousFunctionRector;

return static function (RectorConfig $rectorConfig): void {
    // Geben Sie an, welche Verzeichnisse analysiert werden sollen
    $rectorConfig->paths([
        __DIR__ . '/example.php',
    ]);

    // Registrieren Sie die Regel zum Ersetzen von create_function durch anonyme Funktionen
    $rectorConfig->rule(CreateFunctionToAnonymousFunctionRector::class);
};

Schritt 3: Führen Sie Rector aus:

vendor/bin/rector process --dry-run

Das Flag --dry-run zeigt an, welche Änderungen vorgenommen werden, ohne sie tatsächlich anzuwenden. Um die Dateien wirklich zu ändern, führen Sie aus:

vendor/bin/rector process

Ergebnis: Die Datei example.php wird umgewandelt in:

<?php

$oldFunction = function ($a, $b) {
    return $a +                    

Empfehlungen