This article is part of a series about my deployment workshop on the T3DD13. Make sure to read the other posts, too.
TYPO3 Extension Utilities
With the refactoring of the core extension manager in one of the last version, it losts the ability to upload extensions to the TYPO3 Extension Repository (TER). By that time I wanted to release an extension in the TER (i think it was the EXT:caretaker), but wasn’t able to do so, because I had no old TYPO3 instance running, which i could utilize for it. I asked myself why one needs a running TYPO3 instance at all, to upload an extension to the TER.
So I started to dig into the extension manager code, which is in charge for up- and downloading extensions to the TER. The result is a standalone PHP script called „t3xutils“.
The script is a full TER client. It can upload extensions to the TER, as well as downloading extensions in a specific version and fetch and show the extension metadata. But it also create and extract .t3x file (archives containing an TYPO3 extension).
You might ask: „how is this related to my TYPO3 CMS deployment?“. A valid question.
If you just want to deploy your TYPO3 instance and all of the used extension coming for your or any other repository, you might not need the t3xutils. But for example if you are maintaining an own extension in the TER, and think of automating processes, this can be very helpful (release to TER on tagging in git). Also the ability to fetch and extract extension from the TER using CLI only (e.g. to automate a setup of an new instance and if you don’t have an TYPO3 instance yet) might be a usecase, too.
others and the future of „t3xutils“
Elmar Hinz created an command-line TER client called „EXT“, which is using the „t3xutils“ as library for the uploading and wraps it in a comfortable useable cli tool.
Christian Zenker started to refactor the whole t3xutils to base it in the Symphony Console component, which totally makes sense. He has done an awesome job on this so far. His fork is on github, too, and I’m currently working to review and merge it back to my repository and make it the default.
If you are already using, or going to use, the t3xutils, please consider testing the dev-2.0 branch from my repository on github and provide feedback on it. I will appreciate that a lot!