From 4b74d7ebcc77c577c86d51675c74ac3be8f62a9d Mon Sep 17 00:00:00 2001 From: David Bonhagen Date: Mon, 3 Nov 2025 15:37:10 +0100 Subject: [PATCH 1/3] refactor: add typo3:install:fixfolderstructure command --- recipe/typo3.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/recipe/typo3.php b/recipe/typo3.php index 2b4f88765..59bc10699 100644 --- a/recipe/typo3.php +++ b/recipe/typo3.php @@ -14,10 +14,11 @@ * vendor/bin/dep deploy staging * * Common TYPO3 commands: - * vendor/bin/dep typo3:cache:flush # Clear all TYPO3 caches - * vendor/bin/dep typo3:cache:warmup # Warmup system caches - * vendor/bin/dep typo3:language:update # Update extension language files - * vendor/bin/dep typo3:extension:setup # Set up all extensions + * vendor/bin/dep typo3:cache:flush # Clear all TYPO3 caches + * vendor/bin/dep typo3:cache:warmup # Warmup system caches + * vendor/bin/dep typo3:language:update # Update extension language files + * vendor/bin/dep typo3:extension:setup # Set up all extensions + * vendor/bin/dep typo3:install:fixfolderstructure # Automatically create required files and folders for TYPO3 */ namespace Deployer; @@ -189,9 +190,9 @@ run('{{bin/php}} {{release_path}}/{{bin/typo3}} extension:setup'); }); -desc('TYPO3 - Update database schema'); -task('typo3:database:updateschema', function () { - run('{{bin/php}} {{release_path}}/{{bin/typo3}} database:updateschema {{typo3_updateschema_types}}'); +desc('TYPO3 - Fix folder structure'); +task('typo3:install:fixfolderstructure', function () { + run('{{bin/php}} {{release_path}}/{{bin/typo3}} install:fixfolderstructure'); }); /** @@ -218,6 +219,7 @@ 'deploy:release', 'typo3:update_code', 'deploy:shared', + 'typo3:install:fixfolderstructure', 'deploy:writable', 'deploy:vendors', 'typo3:cache:warmup', From 1b11ee0cc05014fd3f863afd623c446756057af1 Mon Sep 17 00:00:00 2001 From: David Bonhagen Date: Mon, 3 Nov 2025 15:39:22 +0100 Subject: [PATCH 2/3] refactor: reorder deploy tasks and streamline database:updateschema --- recipe/typo3.php | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/recipe/typo3.php b/recipe/typo3.php index 59bc10699..84299a55a 100644 --- a/recipe/typo3.php +++ b/recipe/typo3.php @@ -202,13 +202,13 @@ * 2. Create release directory * 3. Update code (Git or rsync) * 4. Symlink shared dirs/files - * 5. Ensure writable dirs - * 6. Install vendors - * 7. Warm up TYPO3 caches - * 8. Perform schema updates - * 9. Run extension setup - * 10. Update language files - * 11. Flush caches + * 5. Fix TYPO3 folder structure + * 6. Ensure writable dirs + * 7. Run extension setup & perform schema updates + * 8. Update language files + * 9. Install composer vendors + * 10. Flush caches + * 11. Warm up TYPO3 caches * 12. Unlock and clean up */ desc('Deploys a TYPO3 project'); @@ -221,12 +221,11 @@ 'deploy:shared', 'typo3:install:fixfolderstructure', 'deploy:writable', - 'deploy:vendors', - 'typo3:cache:warmup', - 'typo3:database:updateschema', 'typo3:extension:setup', 'typo3:language:update', + 'deploy:vendors', 'typo3:cache:flush', + 'typo3:cache:warmup', 'deploy:publish', ]); From 7d7f8a39a9eca7d643253d4505ad7614f236099f Mon Sep 17 00:00:00 2001 From: David Bonhagen Date: Mon, 3 Nov 2025 15:39:47 +0100 Subject: [PATCH 3/3] docs: generate updated documentation --- docs/recipe/typo3.md | 75 ++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/docs/recipe/typo3.md b/docs/recipe/typo3.md index 4be96c7fd..9b16a9575 100644 --- a/docs/recipe/typo3.md +++ b/docs/recipe/typo3.md @@ -34,13 +34,13 @@ The [deploy](#deploy) task of **TYPO3** consists of: * [deploy:release](/docs/recipe/deploy/release.md#deploy-release) – Prepares release * [typo3:update_code](/docs/recipe/typo3.md#typo3-update_code) – * [deploy:shared](/docs/recipe/deploy/shared.md#deploy-shared) – Creates symlinks for shared files and dirs +* [typo3:install:fixfolderstructure](/docs/recipe/typo3.md#typo3-install-fixfolderstructure) – TYPO3 - Fix folder structure * [deploy:writable](/docs/recipe/deploy/writable.md#deploy-writable) – Makes writable dirs -* [deploy:vendors](/docs/recipe/deploy/vendors.md#deploy-vendors) – Installs vendors -* [typo3:cache:warmup](/docs/recipe/typo3.md#typo3-cache-warmup) – TYPO3 - Cache warmup for system caches -* [typo3:database:updateschema](/docs/recipe/typo3.md#typo3-database-updateschema) – TYPO3 - Update database schema * [typo3:extension:setup](/docs/recipe/typo3.md#typo3-extension-setup) – TYPO3 - Set up all extensions * [typo3:language:update](/docs/recipe/typo3.md#typo3-language-update) – TYPO3 - Update the language files of all activated extensions +* [deploy:vendors](/docs/recipe/deploy/vendors.md#deploy-vendors) – Installs vendors * [typo3:cache:flush](/docs/recipe/typo3.md#typo3-cache-flush) – TYPO3 - Clear all caches +* [typo3:cache:warmup](/docs/recipe/typo3.md#typo3-cache-warmup) – TYPO3 - Cache warmup for system caches * [deploy:publish](/docs/recipe/common.md#deploy-publish) – Publishes the release * [deploy:symlink](/docs/recipe/deploy/symlink.md#deploy-symlink) – Creates symlink to release * [deploy:unlock](/docs/recipe/deploy/lock.md#deploy-unlock) – Unlocks deploy @@ -64,15 +64,16 @@ Deploy to staging using rsync: vendor/bin/dep deploy staging Common TYPO3 commands: - vendor/bin/dep typo3:cache:flush # Clear all TYPO3 caches - vendor/bin/dep typo3:cache:warmup # Warmup system caches - vendor/bin/dep typo3:language:update # Update extension language files - vendor/bin/dep typo3:extension:setup # Set up all extensions + vendor/bin/dep typo3:cache:flush # Clear all TYPO3 caches + vendor/bin/dep typo3:cache:warmup # Warmup system caches + vendor/bin/dep typo3:language:update # Update extension language files + vendor/bin/dep typo3:extension:setup # Set up all extensions + vendor/bin/dep typo3:install:fixfolderstructure # Automatically create required files and folders for TYPO3 ## Configuration ### composer_config -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L34) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L35) Parse composer.json and return its contents as an array. Used for auto-detecting TYPO3 settings like public_dir and bin_dir. @@ -83,7 +84,7 @@ return json_decode(file_get_contents('./composer.json'), true, 512, JSON_THROW_O ### typo3/public_dir -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L43) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L44) TYPO3 public (web) directory. Automatically determined from composer.json. @@ -96,7 +97,7 @@ The value of this configuration is autogenerated on access. ### bin/typo3 -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L57) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L58) Path to the TYPO3 CLI binary. Determined from composer.json "config.bin-dir" or defaults to "vendor/bin/typo3". @@ -108,7 +109,7 @@ The value of this configuration is autogenerated on access. ### log_files -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L70) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L71) Log files to display when running `./vendor/bin/dep logs:app` @@ -118,7 +119,7 @@ Log files to display when running `./vendor/bin/dep logs:app` ### shared_dirs -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L76) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L77) Overrides [shared_dirs](/docs/recipe/deploy/shared.md#shared_dirs) from `recipe/deploy/shared.php`. @@ -139,7 +140,7 @@ Shared via symlinks from the shared/ directory. ### writable_dirs -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L99) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L100) Overrides [writable_dirs](/docs/recipe/deploy/writable.md#writable_dirs) from `recipe/deploy/writable.php`. @@ -158,7 +159,7 @@ Writeable directories ### composer_options -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L111) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L112) Overrides [composer_options](/docs/recipe/deploy/vendors.md#composer_options) from `recipe/deploy/vendors.php`. @@ -170,7 +171,7 @@ Composer install options for production. ### use_rsync -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L117) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L118) If set in the config this recipe uses rsync. Default setting: false (uses the Git repository) @@ -181,7 +182,7 @@ false ### update_code_task -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L119) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L120) @@ -191,7 +192,7 @@ return get('use_rsync') ? 'rsync' : 'deploy:update_code'; ### rsync -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L147) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L148) @@ -212,7 +213,7 @@ return get('use_rsync') ? 'rsync' : 'deploy:update_code'; ### typo3_updateschema_types -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L164) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L165) List of schema update types. `safe` includes all necessary operations, to add or change fields or tables. @@ -226,7 +227,7 @@ List of schema update types. ## Tasks ### typo3\:update_code {#typo3-update_code} -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L123) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L124) @@ -234,7 +235,7 @@ List of schema update types. ### typo3\:cache\:flush {#typo3-cache-flush} -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L173) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L174) TYPO3 - Clear all caches. @@ -243,7 +244,7 @@ All run via [bin/php](/docs/recipe/common.md#bin/php) [release_path](/docs/recip ### typo3\:cache\:warmup {#typo3-cache-warmup} -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L178) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L179) TYPO3 - Cache warmup for system caches. @@ -251,7 +252,7 @@ TYPO3 - Cache warmup for system caches. ### typo3\:language\:update {#typo3-language-update} -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L183) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L184) TYPO3 - Update the language files of all activated extensions. @@ -259,23 +260,23 @@ TYPO3 - Update the language files of all activated extensions. ### typo3\:extension\:setup {#typo3-extension-setup} -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L188) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L189) TYPO3 - Set up all extensions. -### typo3\:database\:updateschema {#typo3-database-updateschema} -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L193) +### typo3\:install\:fixfolderstructure {#typo3-install-fixfolderstructure} +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L194) -TYPO3 - Update database schema. +TYPO3 - Fix folder structure. ### deploy {#deploy} -[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L214) +[Source](https://github.com/deployphp/deployer/blob/master/recipe/typo3.php#L215) Deploys a TYPO3 project. @@ -285,13 +286,13 @@ Main deploy task for TYPO3. 2. Create release directory 3. Update code (Git or rsync) 4. Symlink shared dirs/files -5. Ensure writable dirs -6. Install vendors -7. Warm up TYPO3 caches -8. Perform schema updates -9. Run extension setup -10. Update language files -11. Flush caches +5. Fix TYPO3 folder structure +6. Ensure writable dirs +7. Run extension setup & perform schema updates +8. Update language files +9. Install composer vendors +10. Flush caches +11. Warm up TYPO3 caches 12. Unlock and clean up @@ -302,13 +303,13 @@ This task is group task which contains next tasks: * [deploy:release](/docs/recipe/deploy/release.md#deploy-release) * [typo3:update_code](/docs/recipe/typo3.md#typo3-update_code) * [deploy:shared](/docs/recipe/deploy/shared.md#deploy-shared) +* [typo3:install:fixfolderstructure](/docs/recipe/typo3.md#typo3-install-fixfolderstructure) * [deploy:writable](/docs/recipe/deploy/writable.md#deploy-writable) -* [deploy:vendors](/docs/recipe/deploy/vendors.md#deploy-vendors) -* [typo3:cache:warmup](/docs/recipe/typo3.md#typo3-cache-warmup) -* [typo3:database:updateschema](/docs/recipe/typo3.md#typo3-database-updateschema) * [typo3:extension:setup](/docs/recipe/typo3.md#typo3-extension-setup) * [typo3:language:update](/docs/recipe/typo3.md#typo3-language-update) +* [deploy:vendors](/docs/recipe/deploy/vendors.md#deploy-vendors) * [typo3:cache:flush](/docs/recipe/typo3.md#typo3-cache-flush) +* [typo3:cache:warmup](/docs/recipe/typo3.md#typo3-cache-warmup) * [deploy:publish](/docs/recipe/common.md#deploy-publish)