ddev-typo3-multi-version-extension?ddev-typo3-multi-version-extension is a DDEV add-on that provides a multi-version TYPO3 environment. With this feature, it is possible to develop and test your extension with different TYPO3 versions at the same time.
custom-extensionapache-fpm as webserver typecomposer.json file in the project root directoryYou may use the following command to create a new DDEV project with the required settings:
ddev config --project-type=php --docroot=public --webserver-type=apache-fpm --project-name=custom-extension
Install the add-on with the following command:
ddev add-on get konradmichalik/ddev-typo3-multi-version-extension && ddev restart
After the installation, you can use the following command to open the intro page:
ddev launch
To install TYPO3 instances, use the following command:
ddev install all
# or for a specific version
ddev install 12

For a detailed console output, use the following command:
ddev install 12 -v
By default, a blank TYPO3 instance will be installed for each version. They are only two extensions installed:
Tests/Acceptance/Fixtures/packages directoryUse this sitepackage to test the features of your main extension. You can adjust it to your needs in Tests/Acceptance/Fixtures/packages/sitepackage/.
If you need more extensions for your setup, you can place them in the Tests/Acceptance/Fixtures/packages directory or adjust the ddev install command. Within the e.g. the .install-12 file, you can adjust the composer require command to fit your needs.
Note
You may not need all TYPO3 versions? You can remove the unwanted versions from the TYPO3_VERSIONS variable in .ddev/docker-compose.typo3-setup.yaml.
During installation, fixture data from Tests/Acceptance/Fixtures/ is automatically imported. The following types are supported:
| Type | Location | Description |
|---|---|---|
| XML | Tests/Acceptance/Fixtures/*.xml |
TYPO3 export files, imported via impexp:import |
| SQL | Tests/Acceptance/Fixtures/*.sql |
Raw SQL files, imported directly into the database |
| Site config | Tests/Acceptance/Fixtures/sites/<site-name>/ |
Site configuration directories copied to config/sites/. Use VERSION_PLACEHOLDER in config.yaml to insert the TYPO3 version automatically. |
| Shell scripts | Tests/Acceptance/Fixtures/*.sh |
Executed during setup (failures are logged but donβt abort the installation) |
You can launch a TYPO3 instance in your browser with the following command:
ddev launch 11
ddev launch 12
ddev launch 13
If you want to open the TYPO3 backend directly, use the following command:
ddev launch 13 /typo3
If you want to execute a console command in a specific TYPO3 instance, use the following command:
ddev 11 composer update
ddev 12 typo3 cache:flush
ddev 13 ls -la
You can also run a command in all TYPO3 instances at once:
ddev all typo3 cache:flush
The TYPO3 instances are located in the .Build/ directory. The main extension is symlinked from the root directory to the .Build/ directory.
.
βββ .Build/
βββ 11/
β βββ config/
β βββ packages/
β β βββ sitepackage/
β β βββ your-ext/
β βββ public/
β βββ var/
β βββ vendor/
β βββ composer.json
β βββ composer.lock
βββ ...
Contributed and maintained by @konradmichalik