/typo3-rector

Rector for TYPO3

Primary LanguagePHPMIT LicenseMIT

Latest Stable Version Total Downloads Monthly Downloads Donate

Rector for TYPO3

This project lets you apply instant upgrades and refactoring to your TYPO3 Website and extension code, making it easier to migrate between TYPO3 releases and keeping your code free from deprecation.

It extends the Rector project, which aims to provide instant upgrades and refactoring for any PHP code (5.3+).

Warning

❗ Never run this tool on production! Always run it on development environment where code is under version control (e.g. git). Review and test changes before releasing to production. Code migrations could potentionally break your website!

URL
Repository: https://github.com/sabbelasichon/typo3-rector
Documentation: https://github.com/sabbelasichon/typo3-rector/tree/main/docs
Packagist: https://packagist.org/packages/ssch/typo3-rector
Website: https://www.typo3-rector.com

Installation

TYPO3 Rector requires at least PHP 7.4 but is also compatible with PHP 8. You can find more details about the installation in our installation documentation.

You can install the package via composer:

composer require --dev ssch/typo3-rector

You can create the rector config file with:

vendor/bin/typo3-init

Usage

To see the code migrations that Rector will do, run:

vendor/bin/rector process --dry-run

and when you want to execute the migrations run:

vendor/bin/rector process

Version matrix

v1 v2
typo3 versions 7 - 12 (not all rules) 10 - 13
file support all files (typoscript, flexform, ...) only PHP files

Contributing

Please see CONTRIBUTING for details.

Funding/Sponsoring

Help us out and sponsor our work! Visit our website typo3-rector.com for more info.

This makes it possible to invest more time to keep the project alive and create even more rules for automated migration.

Support

Please post questions in the TYPO3 Slack channel #ext-typo3-rector or feel free to open an issue or start a discussion on GitHub.

Credits

Many thanks to Tomas Votruba for maintaining Rector. Many thanks to All Contributors.

Follow us on X:

License

The MIT License (MIT). Please see License File for more information.

Known Drawbacks

How to Apply Coding Standards?

Rector uses nikic/php-parser, built on technology called an abstract syntax tree (AST). An AST doesn't know about spaces and when written to a file it produces poorly formatted code in both PHP and docblock annotations. That's why your project needs to have a coding standard tool and a set of formatting rules, so it can make Rector's output code nice and shiny again.

We're using ECS with this setup.