Two things this time. TYPO3 9 and 10 can be installed, for the extension that still runs on old code and needs to move forward. And every instance now comes with phpMyAdmin, so looking into the database is a link, not a detour.
typo3quickstarter --release=9Highlights
--release=9 and --release=10 (#21)
You have an extension written for TYPO3 9. Before you can move it anywhere, you need a running 9 to see what it currently does. That's the whole point of this:
typo3quickstarter --release=9 --extension=/home/me/extensions/my-old-extensionBoth lines run on PHP 7.4 — their typo3/cms-core requires ^7.2, so that's as new as it gets — and both are installed with the legacy typo3cms install:setup from TYPO3 Console, the same installer --release=11 has been using all along. Everything else works as it does everywhere else: --extension, --require, --require-dev, --with-git, --list, --cleanup.
Getting there took more than adding two numbers to a list, and all of it is handled for you:
- Composer 2.2+ refused to install TYPO3 9 at all. The 9.5 and 10.4 base distributions carry an
allow-pluginslist written before TYPO3 Console's Composer plugin had to be on it, and Composer doesn't skip a plugin that's missing from that list — it aborts the whole install. The entry is added before anything gets installed. - TYPO3 9 wrote a broken site configuration. The
--site-base-urloption only exists from TYPO3 Console 6 (TYPO3 10) on; without it, TYPO3 9 derives the base from the current request, and on the CLI there isn't one — leavingbase: ht/behind, which no incoming request can ever match. The real URL is written intoconfig/sites/*/config.yamlafterwards. - 9 and 10 still have
PackageStates.php. Anything added with--requireor--extensiononly becomes active once that file is regenerated, so that happens before the extension setup. - The extension kickstarter still needs TYPO3 12+.
--with-gitwill still put the whole project under version control on 9, 10 and 11; the "scaffold a new extension" option is skipped with a note.
One thing to know going in: 9 and 10 are long past end of life, and PHP 7.4 is too. Your IDE and your tooling will say so. See docs/versions.md.
phpMyAdmin, in every instance (#20)
Done.
URL: https://typo3-v13-101.ddev.site
Backend: https://typo3-v13-101.ddev.site/typo3
Admin: admin
Password: _m3v8QbFD#8M9eTlqRcB
Credentials: /home/you/typo3-v13-101/typo3-credentials.txt
phpMyAdmin: https://typo3-v13-101.ddev.site:8037 (or 'ddev phpmyadmin' inside the project)
DDEV's official add-on, installed for you. There is no login screen — the add-on hands phpMyAdmin the database credentials itself, so the link opens straight into the database. The URL is in the summary and in typo3-credentials.txt.
The detail that makes it worth automating: the add-on is installed between ddev config and the first ddev start, so the service comes up with everything else. Added to a project that's already running, it only takes effect after a ddev restart — exactly the step this saves you.
--no-pma leaves it out. And it can never cost you an instance: the add-on is fetched from GitHub, and if that fails the setup says so and carries on without it. See docs/phpmyadmin.md.
Fixed
- TYPO3 11 answered every request with a trusted-hosts error (#23). TYPO3 11 has no
config/system/settings.php— its configuration still lives inpublic/typo3conf/LocalConfiguration.php— so the step that relaxestrustedHostsPatternfound no file to edit and quietly did nothing. It's now written through TYPO3 Console for that version line. - The debug settings now reach 9, 10 and 11 too. Same root cause as above: no
settings.phpto write into.BE/debugandFE/debugwere already being switched on by the installer those versions use; the emptySYS/debugExceptionHandleris now set as well, so every version ends up in the same state. --extensionwith a path that doesn't exist aborted withrealpath's own error message instead of the one written for it, because the check that the directory exists ran afterrealpath.
Under the hood
No change to what the script does, but a large diff if you're reading along: the shapes that had piled up in several copies are now helpers — die/step/warn/ok for messages, plus t3console, extension_setup, composer_package_name, register_local_package and a shared COMPOSER_ARGS for the install pipeline. --list and --cleanup share one preamble instead of two identical ones.
Thanks
- @thomasrawiel for reporting the TYPO3 11 trusted-hosts bug and fixing it (#25) — third release running.
Upgrading
typo3quickstarter updateExisting instances are unaffected; nothing here touches an instance that's already set up. To get phpMyAdmin into one you already have, run this inside its directory:
ddev add-on get ddev/ddev-phpmyadmin
ddev restartFull changelog: CHANGELOG.md