Slide 1

Slide 1 text

RECTOR FÜR TYPO3 TYPO3CAMP MÜNCHEN 2022 - PETER KRAUME

Slide 2

Slide 2 text

RECTOR FÜR TYPO3 WAS IST RECTOR? ▸ Eine Sammlung von Regeln für PHP Upgrades und Refactoring ▸ Instant Upgrades: PHP 5.3 bis 8.1 ▸ Automated Refactoring ▸ Eine Bibliothek, auf die man mit eigenen Regel aufbauen kann ▸ https://github.com/rectorphp/rector ▸ Maintainer ist Tomas Votruba

Slide 3

Slide 3 text

RECTOR FÜR TYPO3 RECTOR FÜR TYPO3 ▸ Sammlung von Regeln, die Upgrades von Extensions ermöglichen ▸ Kann nicht nur PHP Dateien analysieren! ▸ IconsProcessor (ext_icon.* => Resources/Public/Icons/) ▸ FlexFormsProcessor (fügt renderType hinzu) ▸ FormYamlProcessor (wandelt EmailFinisher in eine Array-Syntax um) ▸ TypoScriptProcessor (Conditions in Symfony Expression Language umschreiben, => @import) ▸ Maintainer: Sebastian Schreiber, Henrik Elsner und viele andere ▸ 💰💰💰 Das Team braucht Sponsoring! https://www.typo3-rector.com/sponsoring/

Slide 4

Slide 4 text

RECTOR FÜR TYPO3 HISTORIE ▸ Anfangs war Rector für TYPO3 ein extra Paket, dass zusätzlich zu Rector installiert werden musste ▸ Zwischenzeitlich war Rector für TYPO3 in das of fi zielle Rector Paket integriert ▸ Seit Rector Version 0.14 (August 2022) sind die Projekte wieder getrennt.

Slide 5

Slide 5 text

RECTOR FÜR TYPO3 INSTALLATION UND KONFIGURATION ▸ Rector installieren: ▸ composer require --dev ssch/typo3-rector ▸ Rector initialisieren: ▸ Vorlage in den Project Root kopieren ▸ cp ./vendor/ssch/typo3-rector/templates/rector.php.dist rector.php ▸ Wenn noch PHP < 7.4 verwendet wird: ▸ composer require --dev rector/rector:0.13.4 ▸ vendor/bin/rector init --template-type=typo3

Slide 6

Slide 6 text

RECTOR FÜR TYPO3 ANPASSUNG RECTOR.PHP KONFIGURATIONSDATEI ▸ Typo3LevelSetList::UP_TO_TYPO3_11 ▸ $rectorConfig->phpVersion(PhpVersion::PHP_74); ▸ $rectorConfig->paths([ 
 __DIR__ . '/packages/acme_demo/', 
 ]); ▸ $rectorConfig->skip([]); ▸ nützlich um 3rd Party Code auszuschließen ▸ $parameters->set(Typo3Option::PATHS_FULL_QUALIFIED_NAMESPACES, []); ▸ nicht mehr nötig für TYPO3 v11

Slide 7

Slide 7 text

RECTOR FÜR TYPO3 ANPASSUNG RECTOR.PHP KONFIGURATIONSDATEI ▸ $rectorConfig->rule(StringClassNameToClassConstantRector::class); ▸ Macht 
 GeneralUtility::makeInstance('TYPO3\CMS\Core\Log\LogManager') 
 zu 
 GeneralUtility::makeInstance(\TYPO3\CMS\Core\Log\LogManager::class ) ▸ $rectorConfig->rule( 
 \Ssch\TYPO3Rector\FileProcessor\TypoScript\Rector\v9\v0\FileInclude ToImportStatementTypoScriptRector::class); ▸ Ändert TypoScript zu @import

Slide 8

Slide 8 text

RECTOR FÜR TYPO3 ANPASSUNG RECTOR.PHP KONFIGURATIONSDATEI ▸ $rectorConfig->sets([ 
 Typo3SetList::COMPOSER_PACKAGES_104_CORE, 
 Typo3SetList::COMPOSER_PACKAGES_104_EXTENSIONS 
 ); ▸ Passt die composer.json Abhängigkeiten an die neueste verfügbare Version für die de fi nierte SetList an

Slide 9

Slide 9 text

RECTOR FÜR TYPO3 ANWENDUNG ▸ Rector Trockenlauf ▸ einzelne Extension (z.B. in eigenem Git Repository): 
 vendor/bin/rector process ./ --dry-run ▸ Extension innerhalb einer TYPO3 Installation: 
 vendor/bin/rector process packages/my_ext_key --dry-run ▸ Praxistipps: ▸ Auch Rector macht Fehler und fi ndet nicht alles! ▸ Am besten kleinschrittig laufen lassen, z.B. erst nur für TCA ▸ git diff ist dein Freund!

Slide 10

Slide 10 text

RECTOR FÜR TYPO3 RECTOR IN PHPSTORM ▸ Seit PhpStorm 2022.2 
 https://blog.jetbrains.com/ phpstorm/2022/08/ phpstorm-2022-2-is-now- available/#Rector_support

Slide 11

Slide 11 text

RECTOR FÜR TYPO3 LINKS ▸ Git Repository 
 https://github.com/sabbelasichon/typo3-rector ▸ Dokumentation 
 https://github.com/sabbelasichon/typo3-rector/tree/main/docs ▸ Slack Channel für Support 
 https://typo3.slack.com/archives/C019R5LAA6A ▸ TYPO3-Rector Projekt Seite 
 https://www.typo3-rector.com/ ▸ Twitter Account 
 https://twitter.com/TYPO3Rector