TYPO3 Rector erlaubt eine schnelle, au­to­ma­ti­sier­te Über­ar­bei­tung von TYPO3-PHP-Code. Auf diese Weise sorgen Sie ohne großen Aufwand dafür, dass die Elemente Ihrer In­stal­la­ti­on stets aktuell sind – was ins­be­son­de­re bei Updates und Upgrades wichtig ist.

Was ist TYPO3 Rector?

TYPO3 Rector ist ein Tool, das Ent­wick­le­rin­nen und Ent­wick­lern hilft, den Code au­to­ma­tisch an neue Versionen von TYPO3 oder an neue PHP-Standards an­zu­pas­sen. Bei einem Update auf eine neue Version von TYPO3 können durch Rector veraltete Funk­tio­nen und Methoden au­to­ma­tisch durch die neuen, emp­foh­le­nen ersetzt werden. Abseits der Durch­füh­rung von Major-Updates kann Rector auch bei um­fang­rei­chen Code-An­pas­sun­gen eine wertvolle Hilfe sein.

Welche Vorteile bringt Typo3 Rector?

Rector bietet vor­de­fi­nier­te Regeln für TYPO3, die speziell darauf abzielen, die Kom­pa­ti­bi­li­tät mit neuen Versionen zu ge­währ­leis­ten und den Code zu mo­der­ni­sie­ren. Wenn Sie zum Beispiel eine TYPO3-Extension auf eine neue Version anpassen müssen, kann Rector den Großteil der Re­fak­to­rie­rung über­neh­men und Ihnen viel manuelle Arbeit abnehmen. Besonders bei großen Projekten mit vielen in­di­vi­du­el­len An­pas­sun­gen oder Ex­ten­si­ons ist Rector ein sehr hilf­rei­ches Tool, um si­cher­zu­stel­len, dass alle Code-Teile korrekt und effizient ak­tua­li­siert werden – auch un­ab­hän­gig von TYPO3-Updates.

TYPO3 Rector ana­ly­siert den Quellcode Ihrer Projekte und passt ihn sys­te­ma­tisch an die An­for­de­run­gen neuer TYPO3-Versionen oder aktueller PHP-Standards an. Rector kann zudem Klassen au­to­ma­tisch auf Name­spaces migrieren, Typ­de­kla­ra­tio­nen für Methoden ergänzen und veraltete Funk­tio­nen beheben.

Ent­wick­le­rin­nen und Ent­wick­ler pro­fi­tie­ren also ins­be­son­de­re von folgenden Vorteilen:

  • Ge­rin­ge­rer Aufwand bei Code-Re­fak­to­rie­rung
  • Erhöhte Pro­duk­ti­vi­tät
  • Einfache In­te­gra­ti­on in CI/CD-Pipelines
  • Mi­ni­mier­tes Feh­ler­po­ten­ti­al durch manuelle An­pas­sun­gen
  • Un­ter­stützt eine lang­fris­tig wartbare Codebasis
  • Ge­währ­leis­tet eine kon­sis­ten­te Code­qua­li­tät
  • TYPO3 Rector ist in­di­vi­du­ell kon­fi­gu­rier­bar, um spe­zi­fi­sche An­for­de­run­gen eines Projekts zu erfüllen
TYPO3 für Ihr Hosting Paket
  • Einfach: mit wenigen Klicks in­stal­liert
  • Sicher: SSL-Zer­ti­fi­kat inklusive
  • Schnell: PHP8, OPcache und SSD Webspace

So nutzen Sie TYPO3 Rector für die Code-Ak­tua­li­sie­rung

In den nach­fol­gen­den Ab­schnit­ten erfahren Sie, wie Sie das prak­ti­sche Code-Re­fak­to­rie­rungs-Tool in­stal­lie­ren, kon­fi­gu­rie­ren und ausführen. Ab­schlie­ßend zeigt ein kleines Beispiel ex­em­pla­risch, wie die Anwendung Sie im Pro­gram­mier­all­tag un­ter­stüt­zen kann.

Hinweis

Führen Sie TYPO3 Rector niemals in der Pro­duk­ti­ons­um­ge­bung aus! Nutzen Sie das Tool immer in einer Ent­wick­lungs­um­ge­bung, in der der Code unter Ver­si­ons­kon­trol­le steht (z. B. via Git). Über­prü­fen und testen Sie Än­de­run­gen zunächst, bevor Code-Mi­gra­tio­nen Ihre Website mög­li­cher­wei­se funk­ti­ons­un­fä­hig machen.

Schritt 1: TYPO3 Rector in­stal­lie­ren

TYPO3 Rector ist ein PHP-Paket, das Sie ganz einfach mithilfe von Composer ein­rich­ten können. Vor­aus­set­zung ist also, dass Sie TYPO3 mit Composer in­stal­liert haben. Sie fügen Rector dann zu Ihrem Projekt hinzu, indem Sie den ent­spre­chen­den Composer-Befehl verwenden:

composer require --dev ssch/typo3-rector
bash

Sollten Sie im Rahmen der In­stal­la­ti­on auf Kom­pa­ti­bi­li­täts­pro­ble­me stoßen, können Sie es al­ter­na­tiv mit folgendem Kommando versuchen:

composer require --dev ssch/typo3-rector-prefixed
bash

Schritt 2: Rector kon­fi­gu­rie­ren

Nach der In­stal­la­ti­on von TYPO3 Rector erzeugen Sie mit folgendem Befehl eine Kon­fi­gu­ra­ti­ons­da­tei mit einem Basis-Setup, das sich in­di­vi­du­ell an Ihre An­for­de­run­gen anpassen lässt:

vendor/bin/typo3-init
bash

Die erstellte Kon­fi­gu­ra­ti­ons­da­tei ist in der Regel unter dem Namen rector.php im Root-Ver­zeich­nis Ihres Projekts zu finden. Sie können dort bei­spiels­wei­se festlegen, welche Ver­zeich­nis­se oder Dateien geprüft und re­fak­to­riert werden sollen, indem Sie folgende Angaben machen:

$parameters->set(Option::PATHS, [
    __DIR__ . '/typo3conf/ext',
    __DIR__ . '/packages',
]);
php

Außerdem können Sie festlegen, auf welche TYPO3-Version Rector den Code op­ti­mie­ren soll, z. B. auf Version 12.4:

$containerConfigurator->parameters()->set('typo3_version', '12.4');
php

Welche Mög­lich­kei­ten Sie bei der Kon­fi­gu­ra­ti­on im Detail besitzen, können Sie der of­fi­zi­el­len Rector-Do­ku­men­ta­ti­on (unter „Con­fi­gu­ra­ti­on“) entnehmen.

Schritt 3: TYPO3 Rector ausführen

Sobald Sie TYPO3 Rector kon­fi­gu­riert haben, können Sie das Tool auf jeden be­lie­bi­gen Zielpfad in Ihrer TYPO3-In­stal­la­ti­on ausführen. Um zunächst nur die von Rector geplanten Än­de­run­gen anzeigen zu lassen, hängen Sie im ersten Kommando den Parameter --dry-run an:

vendor/bin/rector process --dry-run
bash

Auf diese Weise können Sie Fehler und un­ge­woll­te An­pas­sun­gen im Vorhinein leicht iden­ti­fi­zie­ren. Um die Än­de­run­gen schließ­lich durch­zu­füh­ren, wie­der­ho­len Sie den Befehl und lassen den Zusatz dabei weg:

vendor/bin/rector process
bash

Schritt 4: Code re­fak­to­rie­ren (Beispiel)

Um die Funk­ti­ons­wei­se von TYPO3 Rector besser zu verstehen, de­mons­trie­ren wir sie ab­schlie­ßend an einem konkreten Beispiel: In älteren TYPO3-Versionen wurde häufig die Methode GeneralUtility::linkThisScript() verwendet, die in neueren Versionen durch Request::getScriptRequestUri() ersetzt wurde.

Folgende Codezeile in der aktuellen TYPO3-In­stal­la­ti­on ist noch auf eine ältere TYPO3-Version ab­ge­stimmt und enthält die alte Methode:

$link = GeneralUtility::linkThisScript(['param' => 'value']);
php

Wenden Sie nun TYPO3 Rector auf den Code an, erkennt das Tool die veraltete De­kla­ra­ti­on und ersetzt die alte Methode:

$link = Request::getScriptRequestUri() . '?param=value';
php
Domain kaufen
Re­gis­trie­ren Sie Ihre perfekte Domain
  • Inklusive 1 SSL-Wildcard-Zer­ti­fi­kat pro Vertrag
  • Inklusive Domain Lock
  • Inklusive Domain Connect für einfache DNS-Ein­rich­tung

Reviewer

Zum Hauptmenü