Automate code migrations for TYPO3 Extensions
Find a file
Daniel Siepmann 097fd7522c
FEATURE: Migrate legacy class names for insteanceof
* Check classes after instanceof token and migrate them when possible

Resolves: #7
2017-03-14 08:38:19 +01:00
src/Standards/Typo3Update FEATURE: Migrate legacy class names for insteanceof 2017-03-14 08:38:19 +01:00
.gitignore FEATURE: Provide first basic implementation of classmapping 2017-03-07 13:36:09 +01:00
composer.json FEATURE: Also migrate PHPDoc annotations 2017-03-07 14:56:18 +01:00
LICENSE Initial commit 2017-03-07 11:41:40 +01:00
Makefile FEATURE: Provide first basic implementation of classmapping 2017-03-07 13:36:09 +01:00
Readme.rst FEATURE: Provide a "preview" 2017-03-09 11:57:49 +01:00

About

Our goal is to provide an automated migration for TYPO3 updates.

This should include source code modifications like adjusting old legacy class names to new ones.

Requirements

  • composer needs to be installed and inside your $PATH.

Installation

Run:

make install

and copy the vendor/composer/autoload_classaliasmap.php generated by composer in your TYPO3 installation to LegacyClassnames.php in the root of this project.

Usage

Run:

./vendor/bin/phpcbf <path>

This will run the auto fixer recursive for <path> fixing all issues.

Afterwards you should run:

./vendor/bin/phpcs <path>

To get information about possible issues that were not autofixed.

What's included?

Currently we can migrate calls to old legacy class names of the TYPO3 core like Tx_Extbase... to new ones like \TYPO3\Extbase\.... This is done for:

  • PHPDocuments, like Includes and annotations for IDEs.
  • Inheritance like extends and implements.
  • Static calls like t3lib_div:: to \TYPO3\Core\Utility\GeneralUtility.
  • Typehints in methods and function like injects.

What does it look like?

$ ./vendor/bin/phpcs -p --colors -s <path>
E


FILE: <path>
----------------------------------------------------------------------
FOUND 5 ERRORS AFFECTING 5 LINES
----------------------------------------------------------------------
 8 | ERROR | [x] Legacy classes are not allowed; found
   |       |   backend_toolbarItem
   |       |   (Typo3Update.LegacyClassnames.Inheritance.legacyClassname)
14 | ERROR | [x] Legacy classes are not allowed; found TYPO3backend
   |       |   (Typo3Update.LegacyClassnames.DocComment.legacyClassname)
16 | ERROR | [x] Legacy classes are not allowed; found TYPO3backend
   |       |   (Typo3Update.LegacyClassnames.TypeHint.legacyClassname)
48 | ERROR | [x] Legacy classes are not allowed; found t3lib_extMgm
   |       |   (Typo3Update.LegacyClassnames.StaticCall.legacyClassname)
61 | ERROR | [x] Legacy classes are not allowed; found t3lib_div
   |       |   (Typo3Update.LegacyClassnames.StaticCall.legacyClassname)
----------------------------------------------------------------------
PHPCBF CAN FIX THE 5 MARKED SNIFF VIOLATIONS AUTOMATICALLY
----------------------------------------------------------------------

Time: 35ms; Memory: 5Mb