The Extension Scanner in TYPO3 v9 core only includes information about changes between v8 and v9. You’re probably wondering about upgrading from earlier versions of TYPO3? TYPO3 v7 is moving to ELTS, now is a good time to be planning that upgrade.
I’ve released the scanner as a stand-alone tool and we’ve made it work for other versions. At the time of writing this article, core still uses its own implementation. This package on GitHub should become the official Extension Scanner, and core will make use of that in time.
When the Extension Scanner first came out, I was working on TYPO3 GmbH’s Project Review service. During project reviews, we don’t manually comb through each project’s source code, we built tools to help automate the reviews. These tools also evaluate quality, such as the size of your code classes and how coupled they are to other components.
You can download the result of an example project review here if you’re curious how those work.
My main motivation in extracting the scanner from TYPO3 core and making it work as a standalone was numerous requests from agencies to evaluate how much would it take to upgrade projects from v6 to v9 or v7 to v8. And what about upgrading version 8 to version 10 (when it’s released)?
To build it, my colleagues went through all the changes that happened between v7 and v8. To handle version 6, we only included the important changes that developers had to do. For every change, they linked a dedicated documentation file. This says what was changed, the issue number, and it gives an idea of what is important to be aware of in the change in terms of fixing or preparing for upgrade.
Find the Extension Scanner for older versions of TYPO3 on Github.
Afterward, Michiel Roos used that to make the console version of the Extension Scanner, available on GitHub. His tool is ideal for people who prefer a command-line interface.
For the next steps, we’d love to see a PHPStorm plugin which would make use of the Extension Scanner, and give a better picture of how the code works by identifying what is connected. That would eliminate the weak matches. So if you know how to write IntelliJ plugins, contact us!