From a3a810f27f3d9e8712d4f59d2902f4c7fc441f68 Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sat, 2 May 2026 21:42:20 +0200 Subject: [PATCH 01/16] Exclude var directory via .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index b313043..dd07061 100644 --- a/.gitignore +++ b/.gitignore @@ -55,6 +55,7 @@ nbproject # # Ignore composer stuff /bin/* +/var/* /vendor/* /index.php /typo3/install.php From d7800f9cd43409e04dbd54776d12a6fcf2cc51cb Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sat, 2 May 2026 21:45:25 +0200 Subject: [PATCH 02/16] Git ignore full var directory, not only contained files --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index dd07061..25ed4ec 100644 --- a/.gitignore +++ b/.gitignore @@ -55,7 +55,7 @@ nbproject # # Ignore composer stuff /bin/* -/var/* +/var /vendor/* /index.php /typo3/install.php From f3ff0f0ff635efeb09e2e0f5778d3815653782cd Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sat, 2 May 2026 21:45:56 +0200 Subject: [PATCH 03/16] Remove bin directory from .gitignore --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 25ed4ec..477a04a 100644 --- a/.gitignore +++ b/.gitignore @@ -54,7 +54,6 @@ nbproject .tscache # # Ignore composer stuff -/bin/* /var /vendor/* /index.php From 36fa9a5393a931659102acaf3b9a5060b266edb0 Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sat, 2 May 2026 21:47:13 +0200 Subject: [PATCH 04/16] Remove vendor directory from .gitignore on root --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 477a04a..a2f698d 100644 --- a/.gitignore +++ b/.gitignore @@ -55,7 +55,6 @@ nbproject # # Ignore composer stuff /var -/vendor/* /index.php /typo3/install.php # From 0ed2d8972d619f6a1011909a4e14788690773637 Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sat, 2 May 2026 21:47:34 +0200 Subject: [PATCH 05/16] Remove index.php from .gitignore on root --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index a2f698d..608c403 100644 --- a/.gitignore +++ b/.gitignore @@ -55,7 +55,6 @@ nbproject # # Ignore composer stuff /var -/index.php /typo3/install.php # # Ignore common TYPO3 CMS files/directories From b5bb864ce80606a0b1280f3edd5d99b6753a8d72 Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sat, 2 May 2026 21:47:51 +0200 Subject: [PATCH 06/16] Remove typo3/install.php from .gitignore on root --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 608c403..f261b7a 100644 --- a/.gitignore +++ b/.gitignore @@ -55,7 +55,6 @@ nbproject # # Ignore composer stuff /var -/typo3/install.php # # Ignore common TYPO3 CMS files/directories /typo3temp/* From 407e4f51db77f0a69817a944549b64250d4d6b56 Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sat, 2 May 2026 21:55:06 +0200 Subject: [PATCH 07/16] [TASK] Adjust directory path resolution in PHP-CS-Fixer config Ensure consistent path resolution by updating the `in()` definition in `.php-cs-fixer.dist.php`. --- Build/cgl/.php-cs-fixer.dist.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Build/cgl/.php-cs-fixer.dist.php b/Build/cgl/.php-cs-fixer.dist.php index 1750a9e..048e9e9 100644 --- a/Build/cgl/.php-cs-fixer.dist.php +++ b/Build/cgl/.php-cs-fixer.dist.php @@ -22,7 +22,7 @@ ->setFinder( (new PhpCsFixer\Finder()) ->ignoreVCSIgnored(true) - ->in(__DIR__.'/../'.'../') + ->in(__DIR__ . '/../../') ->exclude('.Build') ->exclude('Fixtures') ) From d8e6da62e07e06990280bcba7fe1198e24861fc1 Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sat, 2 May 2026 22:10:47 +0200 Subject: [PATCH 08/16] [TASK] Extend excluded directories in PHP-CS-Fixer config Add additional directories to the exclude list for clearer code analysis boundaries. --- Build/cgl/.php-cs-fixer.dist.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/Build/cgl/.php-cs-fixer.dist.php b/Build/cgl/.php-cs-fixer.dist.php index 048e9e9..cb4f2e9 100644 --- a/Build/cgl/.php-cs-fixer.dist.php +++ b/Build/cgl/.php-cs-fixer.dist.php @@ -23,8 +23,13 @@ (new PhpCsFixer\Finder()) ->ignoreVCSIgnored(true) ->in(__DIR__ . '/../../') - ->exclude('.Build') - ->exclude('Fixtures') + ->exclude([ + '.Build', + '.github', + 'Build', + 'var', + 'Tests/Functional/Integration/Fixtures', + ]) ) ->setRiskyAllowed(true) ->setRules([ From 47f289961783911ab7154660b29591d3bb9e3e80 Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sat, 2 May 2026 22:15:12 +0200 Subject: [PATCH 09/16] [TASK] Add strict type declarations to functional test fixtures Include `declare(strict_types=1);` in all relevant PHP files within the functional test fixtures to enforce strict typing and improve code reliability. --- .../Integration/Fixtures/expected_extension/ext_emconf.php | 2 ++ .../Fixtures/extension_with_folders/ext_emconf.php | 2 ++ .../Integration/Fixtures/input/my_extension/ext_emconf.php | 2 ++ .../input/my_extension_with_controller/ext_emconf.php | 2 ++ .../Fixtures/input/my_extension_with_locallang/ext_emconf.php | 2 ++ .../Configuration/TCA/tx_myextension_domain_model_mymodel.php | 4 +++- .../Fixtures/input/my_extension_with_model/ext_emconf.php | 2 ++ .../input/my_extension_with_services_yaml/ext_emconf.php | 2 ++ .../Fixtures/input/my_extension_with_set/ext_emconf.php | 2 ++ .../Configuration/TCA/tx_myextension_domain_model_article.php | 2 ++ .../Configuration/TCA/tx_myextension_mytable.php | 2 ++ .../Configuration/TCA/tx_myextension_mytable.php | 2 ++ .../Configuration/TCA/tx_myextension_domain_model_mymodel.php | 4 +++- .../ext_emconf.php | 2 ++ .../Configuration/TCA/tx_myextension_domain_model_mymodel.php | 4 +++- .../my_extension_with_model_and_mapping/ext_emconf.php | 2 ++ .../Configuration/TCA/tx_myextension_domain_model_mymodel.php | 4 +++- .../Fixtures/my_extension_with_model_modified/ext_emconf.php | 2 ++ .../Configuration/TCA/tx_myextension_domain_model_mymodel.php | 4 +++- .../my_extension_with_model_modified_datetime/ext_emconf.php | 2 ++ .../my_extension_with_module/Configuration/Backend/Module.php | 2 ++ .../Fixtures/my_extension_with_module/ext_emconf.php | 2 ++ 22 files changed, 49 insertions(+), 5 deletions(-) diff --git a/Tests/Functional/Integration/Fixtures/expected_extension/ext_emconf.php b/Tests/Functional/Integration/Fixtures/expected_extension/ext_emconf.php index 5833f5a..335e008 100644 --- a/Tests/Functional/Integration/Fixtures/expected_extension/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/expected_extension/ext_emconf.php @@ -1,5 +1,7 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/extension_with_folders/ext_emconf.php b/Tests/Functional/Integration/Fixtures/extension_with_folders/ext_emconf.php index 5833f5a..335e008 100644 --- a/Tests/Functional/Integration/Fixtures/extension_with_folders/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/extension_with_folders/ext_emconf.php @@ -1,5 +1,7 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension/ext_emconf.php index 5833f5a..335e008 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/input/my_extension/ext_emconf.php @@ -1,5 +1,7 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/ext_emconf.php index 5833f5a..335e008 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/ext_emconf.php @@ -1,5 +1,7 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/ext_emconf.php index 5833f5a..335e008 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/ext_emconf.php @@ -1,5 +1,7 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/Configuration/TCA/tx_myextension_domain_model_mymodel.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/Configuration/TCA/tx_myextension_domain_model_mymodel.php index f9aa5a0..a419b0c 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/Configuration/TCA/tx_myextension_domain_model_mymodel.php +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/Configuration/TCA/tx_myextension_domain_model_mymodel.php @@ -1,5 +1,7 @@ [ 'title' => 'YYY', @@ -125,4 +127,4 @@ ], ], ], -]; \ No newline at end of file +]; diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/ext_emconf.php index 5833f5a..335e008 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/ext_emconf.php @@ -1,5 +1,7 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/ext_emconf.php index 5833f5a..335e008 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/ext_emconf.php @@ -1,5 +1,7 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/ext_emconf.php index 5833f5a..335e008 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/ext_emconf.php @@ -1,5 +1,7 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/make_table_article/Configuration/TCA/tx_myextension_domain_model_article.php b/Tests/Functional/Integration/Fixtures/make_table_article/Configuration/TCA/tx_myextension_domain_model_article.php index 2c906fa..6a315b1 100644 --- a/Tests/Functional/Integration/Fixtures/make_table_article/Configuration/TCA/tx_myextension_domain_model_article.php +++ b/Tests/Functional/Integration/Fixtures/make_table_article/Configuration/TCA/tx_myextension_domain_model_article.php @@ -1,5 +1,7 @@ [ 'title' => 'Article', diff --git a/Tests/Functional/Integration/Fixtures/make_table_basic/Configuration/TCA/tx_myextension_mytable.php b/Tests/Functional/Integration/Fixtures/make_table_basic/Configuration/TCA/tx_myextension_mytable.php index 9d9de15..69aea9d 100644 --- a/Tests/Functional/Integration/Fixtures/make_table_basic/Configuration/TCA/tx_myextension_mytable.php +++ b/Tests/Functional/Integration/Fixtures/make_table_basic/Configuration/TCA/tx_myextension_mytable.php @@ -1,5 +1,7 @@ [ 'title' => 'My Table', diff --git a/Tests/Functional/Integration/Fixtures/make_table_passtrough/Configuration/TCA/tx_myextension_mytable.php b/Tests/Functional/Integration/Fixtures/make_table_passtrough/Configuration/TCA/tx_myextension_mytable.php index c86e097..d4c7ebd 100644 --- a/Tests/Functional/Integration/Fixtures/make_table_passtrough/Configuration/TCA/tx_myextension_mytable.php +++ b/Tests/Functional/Integration/Fixtures/make_table_passtrough/Configuration/TCA/tx_myextension_mytable.php @@ -1,5 +1,7 @@ [ 'title' => 'My Table', diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/Configuration/TCA/tx_myextension_domain_model_mymodel.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/Configuration/TCA/tx_myextension_domain_model_mymodel.php index f9aa5a0..a419b0c 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/Configuration/TCA/tx_myextension_domain_model_mymodel.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/Configuration/TCA/tx_myextension_domain_model_mymodel.php @@ -1,5 +1,7 @@ [ 'title' => 'YYY', @@ -125,4 +127,4 @@ ], ], ], -]; \ No newline at end of file +]; diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/ext_emconf.php index 5833f5a..335e008 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/ext_emconf.php @@ -1,5 +1,7 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/Configuration/TCA/tx_myextension_domain_model_mymodel.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/Configuration/TCA/tx_myextension_domain_model_mymodel.php index f9aa5a0..a419b0c 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/Configuration/TCA/tx_myextension_domain_model_mymodel.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/Configuration/TCA/tx_myextension_domain_model_mymodel.php @@ -1,5 +1,7 @@ [ 'title' => 'YYY', @@ -125,4 +127,4 @@ ], ], ], -]; \ No newline at end of file +]; diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/ext_emconf.php index 5833f5a..335e008 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/ext_emconf.php @@ -1,5 +1,7 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/Configuration/TCA/tx_myextension_domain_model_mymodel.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/Configuration/TCA/tx_myextension_domain_model_mymodel.php index f9aa5a0..a419b0c 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/Configuration/TCA/tx_myextension_domain_model_mymodel.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/Configuration/TCA/tx_myextension_domain_model_mymodel.php @@ -1,5 +1,7 @@ [ 'title' => 'YYY', @@ -125,4 +127,4 @@ ], ], ], -]; \ No newline at end of file +]; diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/ext_emconf.php index 5833f5a..335e008 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/ext_emconf.php @@ -1,5 +1,7 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/Configuration/TCA/tx_myextension_domain_model_mymodel.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/Configuration/TCA/tx_myextension_domain_model_mymodel.php index f9aa5a0..a419b0c 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/Configuration/TCA/tx_myextension_domain_model_mymodel.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/Configuration/TCA/tx_myextension_domain_model_mymodel.php @@ -1,5 +1,7 @@ [ 'title' => 'YYY', @@ -125,4 +127,4 @@ ], ], ], -]; \ No newline at end of file +]; diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/ext_emconf.php index 5833f5a..335e008 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/ext_emconf.php @@ -1,5 +1,7 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_module/Configuration/Backend/Module.php b/Tests/Functional/Integration/Fixtures/my_extension_with_module/Configuration/Backend/Module.php index 0af00e4..9b65231 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_module/Configuration/Backend/Module.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_module/Configuration/Backend/Module.php @@ -1,5 +1,7 @@ [ diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_module/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_module/ext_emconf.php index 5833f5a..335e008 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_module/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_module/ext_emconf.php @@ -1,5 +1,7 @@ 'My Extension', 'description' => 'This is a test extension', From 04b5087fd512c81879cbbfec4ae94e95c5786e6e Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sat, 2 May 2026 23:12:40 +0200 Subject: [PATCH 10/16] [TASK] Remove strict type declarations from functional test fixtures Omit `declare(strict_types=1);` in functional test fixture PHP files to simplify the test setup and align with the intended purpose of fixtures as non-strictly typed code. --- .../Integration/Fixtures/expected_extension/ext_emconf.php | 2 -- .../Integration/Fixtures/extension_with_folders/ext_emconf.php | 2 -- .../Integration/Fixtures/input/my_extension/ext_emconf.php | 2 -- .../Fixtures/input/my_extension_with_controller/ext_emconf.php | 2 -- .../Fixtures/input/my_extension_with_locallang/ext_emconf.php | 2 -- .../Configuration/TCA/tx_myextension_domain_model_mymodel.php | 2 -- .../Fixtures/input/my_extension_with_model/ext_emconf.php | 2 -- .../input/my_extension_with_services_yaml/ext_emconf.php | 2 -- .../Fixtures/input/my_extension_with_set/ext_emconf.php | 2 -- .../Configuration/TCA/tx_myextension_domain_model_article.php | 2 -- .../Configuration/TCA/tx_myextension_mytable.php | 2 -- .../Configuration/TCA/tx_myextension_mytable.php | 2 -- .../Configuration/TCA/tx_myextension_domain_model_mymodel.php | 2 -- .../my_extension_with_model_and_initializeObject/ext_emconf.php | 2 -- .../Configuration/TCA/tx_myextension_domain_model_mymodel.php | 2 -- .../Fixtures/my_extension_with_model_and_mapping/ext_emconf.php | 2 -- .../Configuration/TCA/tx_myextension_domain_model_mymodel.php | 2 -- .../Fixtures/my_extension_with_model_modified/ext_emconf.php | 2 -- .../Configuration/TCA/tx_myextension_domain_model_mymodel.php | 2 -- .../my_extension_with_model_modified_datetime/ext_emconf.php | 2 -- .../my_extension_with_module/Configuration/Backend/Module.php | 2 -- .../Fixtures/my_extension_with_module/ext_emconf.php | 2 -- 22 files changed, 44 deletions(-) diff --git a/Tests/Functional/Integration/Fixtures/expected_extension/ext_emconf.php b/Tests/Functional/Integration/Fixtures/expected_extension/ext_emconf.php index 335e008..5833f5a 100644 --- a/Tests/Functional/Integration/Fixtures/expected_extension/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/expected_extension/ext_emconf.php @@ -1,7 +1,5 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/extension_with_folders/ext_emconf.php b/Tests/Functional/Integration/Fixtures/extension_with_folders/ext_emconf.php index 335e008..5833f5a 100644 --- a/Tests/Functional/Integration/Fixtures/extension_with_folders/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/extension_with_folders/ext_emconf.php @@ -1,7 +1,5 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension/ext_emconf.php index 335e008..5833f5a 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/input/my_extension/ext_emconf.php @@ -1,7 +1,5 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/ext_emconf.php index 335e008..5833f5a 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/ext_emconf.php @@ -1,7 +1,5 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/ext_emconf.php index 335e008..5833f5a 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/ext_emconf.php @@ -1,7 +1,5 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/Configuration/TCA/tx_myextension_domain_model_mymodel.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/Configuration/TCA/tx_myextension_domain_model_mymodel.php index a419b0c..f65d75a 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/Configuration/TCA/tx_myextension_domain_model_mymodel.php +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/Configuration/TCA/tx_myextension_domain_model_mymodel.php @@ -1,7 +1,5 @@ [ 'title' => 'YYY', diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/ext_emconf.php index 335e008..5833f5a 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/ext_emconf.php @@ -1,7 +1,5 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/ext_emconf.php index 335e008..5833f5a 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/ext_emconf.php @@ -1,7 +1,5 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/ext_emconf.php index 335e008..5833f5a 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/ext_emconf.php @@ -1,7 +1,5 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/make_table_article/Configuration/TCA/tx_myextension_domain_model_article.php b/Tests/Functional/Integration/Fixtures/make_table_article/Configuration/TCA/tx_myextension_domain_model_article.php index 6a315b1..2c906fa 100644 --- a/Tests/Functional/Integration/Fixtures/make_table_article/Configuration/TCA/tx_myextension_domain_model_article.php +++ b/Tests/Functional/Integration/Fixtures/make_table_article/Configuration/TCA/tx_myextension_domain_model_article.php @@ -1,7 +1,5 @@ [ 'title' => 'Article', diff --git a/Tests/Functional/Integration/Fixtures/make_table_basic/Configuration/TCA/tx_myextension_mytable.php b/Tests/Functional/Integration/Fixtures/make_table_basic/Configuration/TCA/tx_myextension_mytable.php index 69aea9d..9d9de15 100644 --- a/Tests/Functional/Integration/Fixtures/make_table_basic/Configuration/TCA/tx_myextension_mytable.php +++ b/Tests/Functional/Integration/Fixtures/make_table_basic/Configuration/TCA/tx_myextension_mytable.php @@ -1,7 +1,5 @@ [ 'title' => 'My Table', diff --git a/Tests/Functional/Integration/Fixtures/make_table_passtrough/Configuration/TCA/tx_myextension_mytable.php b/Tests/Functional/Integration/Fixtures/make_table_passtrough/Configuration/TCA/tx_myextension_mytable.php index d4c7ebd..c86e097 100644 --- a/Tests/Functional/Integration/Fixtures/make_table_passtrough/Configuration/TCA/tx_myextension_mytable.php +++ b/Tests/Functional/Integration/Fixtures/make_table_passtrough/Configuration/TCA/tx_myextension_mytable.php @@ -1,7 +1,5 @@ [ 'title' => 'My Table', diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/Configuration/TCA/tx_myextension_domain_model_mymodel.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/Configuration/TCA/tx_myextension_domain_model_mymodel.php index a419b0c..f65d75a 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/Configuration/TCA/tx_myextension_domain_model_mymodel.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/Configuration/TCA/tx_myextension_domain_model_mymodel.php @@ -1,7 +1,5 @@ [ 'title' => 'YYY', diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/ext_emconf.php index 335e008..5833f5a 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/ext_emconf.php @@ -1,7 +1,5 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/Configuration/TCA/tx_myextension_domain_model_mymodel.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/Configuration/TCA/tx_myextension_domain_model_mymodel.php index a419b0c..f65d75a 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/Configuration/TCA/tx_myextension_domain_model_mymodel.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/Configuration/TCA/tx_myextension_domain_model_mymodel.php @@ -1,7 +1,5 @@ [ 'title' => 'YYY', diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/ext_emconf.php index 335e008..5833f5a 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/ext_emconf.php @@ -1,7 +1,5 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/Configuration/TCA/tx_myextension_domain_model_mymodel.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/Configuration/TCA/tx_myextension_domain_model_mymodel.php index a419b0c..f65d75a 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/Configuration/TCA/tx_myextension_domain_model_mymodel.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/Configuration/TCA/tx_myextension_domain_model_mymodel.php @@ -1,7 +1,5 @@ [ 'title' => 'YYY', diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/ext_emconf.php index 335e008..5833f5a 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/ext_emconf.php @@ -1,7 +1,5 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/Configuration/TCA/tx_myextension_domain_model_mymodel.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/Configuration/TCA/tx_myextension_domain_model_mymodel.php index a419b0c..f65d75a 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/Configuration/TCA/tx_myextension_domain_model_mymodel.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/Configuration/TCA/tx_myextension_domain_model_mymodel.php @@ -1,7 +1,5 @@ [ 'title' => 'YYY', diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/ext_emconf.php index 335e008..5833f5a 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/ext_emconf.php @@ -1,7 +1,5 @@ 'My Extension', 'description' => 'This is a test extension', diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_module/Configuration/Backend/Module.php b/Tests/Functional/Integration/Fixtures/my_extension_with_module/Configuration/Backend/Module.php index 9b65231..0af00e4 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_module/Configuration/Backend/Module.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_module/Configuration/Backend/Module.php @@ -1,7 +1,5 @@ [ diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_module/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_module/ext_emconf.php index 335e008..5833f5a 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_module/ext_emconf.php +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_module/ext_emconf.php @@ -1,7 +1,5 @@ 'My Extension', 'description' => 'This is a test extension', From ef2066553f518c0d8ad52f77f4d2a6337d794ba4 Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sat, 2 May 2026 23:12:55 +0200 Subject: [PATCH 11/16] [TASK] Filter null and empty values in site setting arrays Ensure settings arrays exclude null or empty values during conversion to arrays, enhancing data cleanliness and consistency. --- Classes/Creator/SiteSet/SiteSettingsDefinitionCreator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/Creator/SiteSet/SiteSettingsDefinitionCreator.php b/Classes/Creator/SiteSet/SiteSettingsDefinitionCreator.php index 72139c2..adb26de 100644 --- a/Classes/Creator/SiteSet/SiteSettingsDefinitionCreator.php +++ b/Classes/Creator/SiteSet/SiteSettingsDefinitionCreator.php @@ -64,7 +64,7 @@ private function getFileContent(SiteSettingsDefinitionInformation $siteSettingsD } $this->types->getProvidedServices(); foreach ($siteSettingsDefinitionInformation->getSettings() as $setting) { - $array = $setting->toArray(); + $array = array_filter(get_object_vars($setting), fn(mixed $value): bool => $value !== null && $value !== []); unset($array['key']); if ($array['readonly'] === false) { From e92b9171ccc81cb9c0801a8c2fbf7da403c301d6 Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sat, 2 May 2026 23:13:08 +0200 Subject: [PATCH 12/16] [TASK] Skip SafeDeclareStrictTypesRector for specific fixture files Update Rector configuration to exclude fixture files and `ext_emconf.php` from `SafeDeclareStrictTypesRector`, ensuring flexible handling of strict types for test-related and configuration files. --- Build/rector/rector.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Build/rector/rector.php b/Build/rector/rector.php index 0617d72..ba6e209 100644 --- a/Build/rector/rector.php +++ b/Build/rector/rector.php @@ -13,6 +13,7 @@ use Rector\CodingStyle\Rector\Encapsed\EncapsedStringsToSprintfRector; use Rector\Config\RectorConfig; use Rector\Php81\Rector\FuncCall\NullToStrictStringFuncCallArgRector; +use Rector\TypeDeclaration\Rector\StmtsAwareInterface\SafeDeclareStrictTypesRector; use Rector\ValueObject\PhpVersion; use Ssch\TYPO3Rector\CodeQuality\General\ExtEmConfRector; use Ssch\TYPO3Rector\Configuration\Typo3Option; @@ -53,8 +54,14 @@ ->withImportNames(importShortClasses: false, removeUnusedImports: true) ->withSkip([ NullToStrictStringFuncCallArgRector::class, + SafeDeclareStrictTypesRector::class => [ + '*ext_emconf.php', + '*/Tests/Functional/Integration/Fixtures/*/Configuration/TCA/*.php', + '*/Tests/Functional/Integration/Fixtures/*/Configuration/TCA/Overrides/*.php', + '*/Tests/Functional/Integration/Fixtures/*/Configuration/Backend/*.php', + ], FlipTypeControlToUseExclusiveTypeRector::class => [ - __DIR__ . '/../../Classes/PhpParser/Printer/PrettyTypo3Printer.php', + '*/Classes/PhpParser/Printer/PrettyTypo3Printer.php', ], '*Build/*', '*Resources/*', From 80afddf401ea2e26ed53f2dca5580a94eca6d404 Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sat, 2 May 2026 23:28:13 +0200 Subject: [PATCH 13/16] [TASK] Remove ext_emconf.php handling from Extension Creator Remove generation and usage of `ext_emconf.php` files from the Extension Creator and functional test fixtures, reflecting their deprecation and ensuring alignment with modern TYPO3 standards. --- .../Creator/Extension/ExtEmconfCreator.php | 80 ------------------- README.md | 2 +- .../ExtensionCreatorServiceTest.php | 2 - .../expected_extension/ext_emconf.php | 19 ----- .../extension_with_folders/ext_emconf.php | 19 ----- .../input/my_extension/ext_emconf.php | 19 ----- .../ext_emconf.php | 19 ----- .../ext_emconf.php | 19 ----- .../my_extension_with_model/ext_emconf.php | 19 ----- .../ext_emconf.php | 19 ----- .../my_extension_with_set/ext_emconf.php | 19 ----- .../ext_emconf.php | 19 ----- .../ext_emconf.php | 19 ----- .../ext_emconf.php | 19 ----- .../ext_emconf.php | 19 ----- .../my_extension_with_module/ext_emconf.php | 19 ----- 16 files changed, 1 insertion(+), 330 deletions(-) delete mode 100644 Classes/Creator/Extension/ExtEmconfCreator.php delete mode 100644 Tests/Functional/Integration/Fixtures/expected_extension/ext_emconf.php delete mode 100644 Tests/Functional/Integration/Fixtures/extension_with_folders/ext_emconf.php delete mode 100644 Tests/Functional/Integration/Fixtures/input/my_extension/ext_emconf.php delete mode 100644 Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/ext_emconf.php delete mode 100644 Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/ext_emconf.php delete mode 100644 Tests/Functional/Integration/Fixtures/input/my_extension_with_model/ext_emconf.php delete mode 100644 Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/ext_emconf.php delete mode 100644 Tests/Functional/Integration/Fixtures/input/my_extension_with_set/ext_emconf.php delete mode 100644 Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/ext_emconf.php delete mode 100644 Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/ext_emconf.php delete mode 100644 Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/ext_emconf.php delete mode 100644 Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/ext_emconf.php delete mode 100644 Tests/Functional/Integration/Fixtures/my_extension_with_module/ext_emconf.php diff --git a/Classes/Creator/Extension/ExtEmconfCreator.php b/Classes/Creator/Extension/ExtEmconfCreator.php deleted file mode 100644 index 55c5d9a..0000000 --- a/Classes/Creator/Extension/ExtEmconfCreator.php +++ /dev/null @@ -1,80 +0,0 @@ -factory = new BuilderFactory(); - } - - public function create(ExtensionInformation $extensionInformation): void - { - $extEmconfFilePath = $extensionInformation->getExtensionPath() . 'ext_emconf.php'; - $fileStructure = $this->buildFileStructure($extEmconfFilePath); - - if (is_file($extEmconfFilePath)) { - $extensionInformation->getCreatorInformation()->fileExists( - $extEmconfFilePath - ); - return; - } - $this->setExtEmconfConfiguration($fileStructure, $extensionInformation); - - $this->fileManager->createFile($extEmconfFilePath, $fileStructure->getFileContents(), $extensionInformation->getCreatorInformation()); - } - - private function setExtEmconfConfiguration(FileStructure $fileStructure, ExtensionInformation $configurator): void - { - $configuration = [ - 'title' => $configurator->getTitle(), - 'description' => $configurator->getDescription(), - 'category' => $configurator->getCategory(), - 'state' => $configurator->getState(), - 'author' => $configurator->getAuthor(), - 'author_email' => $configurator->getAuthorEmail(), - 'author_company' => $configurator->getAuthorCompany(), - 'version' => $configurator->getVersion(), - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - ], - 'conflicts' => [], - 'suggests' => [], - ], - ]; - - $fileStructure->addExpressionStructure(new ExpressionStructure(new Expression(new Assign( - new ArrayDimFetch( - $this->factory->var('EM_CONF'), - $this->factory->var('_EXTKEY'), - ), - $this->factory->val($configuration), - )))); - } -} diff --git a/README.md b/README.md index c5b0dce..52c5040 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # TYPO3 Extension Kickstarter -`kickstarter` is a TYPO3 extension that simplifies and accelerates the creation of new TYPO3 extensions by automating file generation, controller setup, and plugin registration through easy-to-use CLI commands. With a few CLI commands, it generates essential files like `LICENSE`, `ext_emconf.php`,`composer.json`, and more. Whether starting from scratch or extending existing functionality, `kickstarter` helps streamline development. +`kickstarter` is a TYPO3 extension that simplifies and accelerates the creation of new TYPO3 extensions by automating file generation, controller setup, and plugin registration through easy-to-use CLI commands. With a few CLI commands, it generates essential files like `LICENSE`, `composer.json`, and more. Whether starting from scratch or extending existing functionality, `kickstarter` helps streamline development. --- diff --git a/Tests/Functional/Integration/ExtensionCreatorServiceTest.php b/Tests/Functional/Integration/ExtensionCreatorServiceTest.php index ccff7f7..fa18c1b 100644 --- a/Tests/Functional/Integration/ExtensionCreatorServiceTest.php +++ b/Tests/Functional/Integration/ExtensionCreatorServiceTest.php @@ -98,7 +98,6 @@ public static function extensionCreationProvider(): array 'namespaceForAutoload' => 'Vendor\\MyExtension\\', 'expectedDir' => __DIR__ . '/Fixtures/expected_extension', 'expectedFiles' => [ - 'ext_emconf.php', 'README.md', ], ], @@ -116,7 +115,6 @@ public static function extensionCreationProvider(): array 'namespaceForAutoload' => 'Vendor\\MyExtension\\', 'expectedDir' => __DIR__ . '/Fixtures/extension_with_folders', 'expectedFiles' => [ - 'ext_emconf.php', 'README.md', ], 'createFolders' => true, diff --git a/Tests/Functional/Integration/Fixtures/expected_extension/ext_emconf.php b/Tests/Functional/Integration/Fixtures/expected_extension/ext_emconf.php deleted file mode 100644 index 5833f5a..0000000 --- a/Tests/Functional/Integration/Fixtures/expected_extension/ext_emconf.php +++ /dev/null @@ -1,19 +0,0 @@ - 'My Extension', - 'description' => 'This is a test extension', - 'category' => 'plugin', - 'state' => 'stable', - 'author' => 'John Doe', - 'author_email' => 'john@example.com', - 'author_company' => 'MyCompany', - 'version' => '1.0.0', - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - ], - 'conflicts' => [], - 'suggests' => [], - ], -]; diff --git a/Tests/Functional/Integration/Fixtures/extension_with_folders/ext_emconf.php b/Tests/Functional/Integration/Fixtures/extension_with_folders/ext_emconf.php deleted file mode 100644 index 5833f5a..0000000 --- a/Tests/Functional/Integration/Fixtures/extension_with_folders/ext_emconf.php +++ /dev/null @@ -1,19 +0,0 @@ - 'My Extension', - 'description' => 'This is a test extension', - 'category' => 'plugin', - 'state' => 'stable', - 'author' => 'John Doe', - 'author_email' => 'john@example.com', - 'author_company' => 'MyCompany', - 'version' => '1.0.0', - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - ], - 'conflicts' => [], - 'suggests' => [], - ], -]; diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension/ext_emconf.php deleted file mode 100644 index 5833f5a..0000000 --- a/Tests/Functional/Integration/Fixtures/input/my_extension/ext_emconf.php +++ /dev/null @@ -1,19 +0,0 @@ - 'My Extension', - 'description' => 'This is a test extension', - 'category' => 'plugin', - 'state' => 'stable', - 'author' => 'John Doe', - 'author_email' => 'john@example.com', - 'author_company' => 'MyCompany', - 'version' => '1.0.0', - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - ], - 'conflicts' => [], - 'suggests' => [], - ], -]; diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/ext_emconf.php deleted file mode 100644 index 5833f5a..0000000 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/ext_emconf.php +++ /dev/null @@ -1,19 +0,0 @@ - 'My Extension', - 'description' => 'This is a test extension', - 'category' => 'plugin', - 'state' => 'stable', - 'author' => 'John Doe', - 'author_email' => 'john@example.com', - 'author_company' => 'MyCompany', - 'version' => '1.0.0', - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - ], - 'conflicts' => [], - 'suggests' => [], - ], -]; diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/ext_emconf.php deleted file mode 100644 index 5833f5a..0000000 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/ext_emconf.php +++ /dev/null @@ -1,19 +0,0 @@ - 'My Extension', - 'description' => 'This is a test extension', - 'category' => 'plugin', - 'state' => 'stable', - 'author' => 'John Doe', - 'author_email' => 'john@example.com', - 'author_company' => 'MyCompany', - 'version' => '1.0.0', - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - ], - 'conflicts' => [], - 'suggests' => [], - ], -]; diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/ext_emconf.php deleted file mode 100644 index 5833f5a..0000000 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/ext_emconf.php +++ /dev/null @@ -1,19 +0,0 @@ - 'My Extension', - 'description' => 'This is a test extension', - 'category' => 'plugin', - 'state' => 'stable', - 'author' => 'John Doe', - 'author_email' => 'john@example.com', - 'author_company' => 'MyCompany', - 'version' => '1.0.0', - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - ], - 'conflicts' => [], - 'suggests' => [], - ], -]; diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/ext_emconf.php deleted file mode 100644 index 5833f5a..0000000 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/ext_emconf.php +++ /dev/null @@ -1,19 +0,0 @@ - 'My Extension', - 'description' => 'This is a test extension', - 'category' => 'plugin', - 'state' => 'stable', - 'author' => 'John Doe', - 'author_email' => 'john@example.com', - 'author_company' => 'MyCompany', - 'version' => '1.0.0', - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - ], - 'conflicts' => [], - 'suggests' => [], - ], -]; diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/ext_emconf.php b/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/ext_emconf.php deleted file mode 100644 index 5833f5a..0000000 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/ext_emconf.php +++ /dev/null @@ -1,19 +0,0 @@ - 'My Extension', - 'description' => 'This is a test extension', - 'category' => 'plugin', - 'state' => 'stable', - 'author' => 'John Doe', - 'author_email' => 'john@example.com', - 'author_company' => 'MyCompany', - 'version' => '1.0.0', - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - ], - 'conflicts' => [], - 'suggests' => [], - ], -]; diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/ext_emconf.php deleted file mode 100644 index 5833f5a..0000000 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/ext_emconf.php +++ /dev/null @@ -1,19 +0,0 @@ - 'My Extension', - 'description' => 'This is a test extension', - 'category' => 'plugin', - 'state' => 'stable', - 'author' => 'John Doe', - 'author_email' => 'john@example.com', - 'author_company' => 'MyCompany', - 'version' => '1.0.0', - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - ], - 'conflicts' => [], - 'suggests' => [], - ], -]; diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/ext_emconf.php deleted file mode 100644 index 5833f5a..0000000 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/ext_emconf.php +++ /dev/null @@ -1,19 +0,0 @@ - 'My Extension', - 'description' => 'This is a test extension', - 'category' => 'plugin', - 'state' => 'stable', - 'author' => 'John Doe', - 'author_email' => 'john@example.com', - 'author_company' => 'MyCompany', - 'version' => '1.0.0', - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - ], - 'conflicts' => [], - 'suggests' => [], - ], -]; diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/ext_emconf.php deleted file mode 100644 index 5833f5a..0000000 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/ext_emconf.php +++ /dev/null @@ -1,19 +0,0 @@ - 'My Extension', - 'description' => 'This is a test extension', - 'category' => 'plugin', - 'state' => 'stable', - 'author' => 'John Doe', - 'author_email' => 'john@example.com', - 'author_company' => 'MyCompany', - 'version' => '1.0.0', - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - ], - 'conflicts' => [], - 'suggests' => [], - ], -]; diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/ext_emconf.php deleted file mode 100644 index 5833f5a..0000000 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/ext_emconf.php +++ /dev/null @@ -1,19 +0,0 @@ - 'My Extension', - 'description' => 'This is a test extension', - 'category' => 'plugin', - 'state' => 'stable', - 'author' => 'John Doe', - 'author_email' => 'john@example.com', - 'author_company' => 'MyCompany', - 'version' => '1.0.0', - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - ], - 'conflicts' => [], - 'suggests' => [], - ], -]; diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_module/ext_emconf.php b/Tests/Functional/Integration/Fixtures/my_extension_with_module/ext_emconf.php deleted file mode 100644 index 5833f5a..0000000 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_module/ext_emconf.php +++ /dev/null @@ -1,19 +0,0 @@ - 'My Extension', - 'description' => 'This is a test extension', - 'category' => 'plugin', - 'state' => 'stable', - 'author' => 'John Doe', - 'author_email' => 'john@example.com', - 'author_company' => 'MyCompany', - 'version' => '1.0.0', - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - ], - 'conflicts' => [], - 'suggests' => [], - ], -]; From fc042f12159714d98d62b119f1cceab3e07ef78f Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sun, 3 May 2026 00:01:19 +0200 Subject: [PATCH 14/16] [TASK] Enhance composer.json structure in test fixtures Extend the `composer.json` structure within functional test fixtures to include `Package` metadata and `version` information, ensuring better compatibility with TYPO3 standards. --- Classes/Creator/Extension/ComposerJsonCreator.php | 4 ++++ Classes/Creator/Test/Environment/ComposerJsonCreator.php | 6 ++++++ .../Integration/Fixtures/expected_extension/composer.json | 6 +++++- .../Fixtures/extension_with_folders/composer.json | 6 +++++- .../Integration/Fixtures/input/my_extension/composer.json | 6 +++++- .../input/my_extension_with_controller/composer.json | 6 +++++- .../input/my_extension_with_locallang/composer.json | 6 +++++- .../Fixtures/input/my_extension_with_model/composer.json | 6 +++++- .../input/my_extension_with_services_yaml/composer.json | 6 +++++- .../Fixtures/input/my_extension_with_set/composer.json | 6 +++++- .../Integration/Fixtures/make_testenv/composer.json | 4 ++++ .../composer.json | 6 +++++- .../my_extension_with_model_and_mapping/composer.json | 6 +++++- .../Fixtures/my_extension_with_model_modified/composer.json | 6 +++++- .../my_extension_with_model_modified_datetime/composer.json | 6 +++++- .../Fixtures/my_extension_with_module/composer.json | 6 +++++- 16 files changed, 79 insertions(+), 13 deletions(-) diff --git a/Classes/Creator/Extension/ComposerJsonCreator.php b/Classes/Creator/Extension/ComposerJsonCreator.php index e5cb6d0..1c6904a 100644 --- a/Classes/Creator/Extension/ComposerJsonCreator.php +++ b/Classes/Creator/Extension/ComposerJsonCreator.php @@ -59,7 +59,11 @@ private function getFileContent(ExtensionInformation $extensionInformation): str ], 'extra' => [ 'typo3/cms' => [ + 'Package' => [ + 'providesPackages' => (object)[], + ], 'extension-key' => $extensionInformation->getExtensionKey(), + 'version' => $extensionInformation->getVersion(), ], ], ]; diff --git a/Classes/Creator/Test/Environment/ComposerJsonCreator.php b/Classes/Creator/Test/Environment/ComposerJsonCreator.php index 2ce100c..26d9947 100644 --- a/Classes/Creator/Test/Environment/ComposerJsonCreator.php +++ b/Classes/Creator/Test/Environment/ComposerJsonCreator.php @@ -70,6 +70,12 @@ private function updateComposerJson(array $composerConfig): string ksort($composerConfig['config']['allow-plugins']); + if (isset($composerConfig['extra']['typo3/cms']['Package']['providesPackages']) + && $composerConfig['extra']['typo3/cms']['Package']['providesPackages'] === [] + ) { + $composerConfig['extra']['typo3/cms']['Package']['providesPackages'] = (object)[]; + } + if (!isset($composerConfig['config']['bin-dir'])) { $composerConfig['config']['bin-dir'] = '.Build/bin'; } diff --git a/Tests/Functional/Integration/Fixtures/expected_extension/composer.json b/Tests/Functional/Integration/Fixtures/expected_extension/composer.json index 9da9b50..a277d86 100644 --- a/Tests/Functional/Integration/Fixtures/expected_extension/composer.json +++ b/Tests/Functional/Integration/Fixtures/expected_extension/composer.json @@ -26,7 +26,11 @@ }, "extra": { "typo3/cms": { - "extension-key": "my_extension" + "Package": { + "providesPackages": {} + }, + "extension-key": "my_extension", + "version": "1.0.0" } } } diff --git a/Tests/Functional/Integration/Fixtures/extension_with_folders/composer.json b/Tests/Functional/Integration/Fixtures/extension_with_folders/composer.json index 9da9b50..a277d86 100644 --- a/Tests/Functional/Integration/Fixtures/extension_with_folders/composer.json +++ b/Tests/Functional/Integration/Fixtures/extension_with_folders/composer.json @@ -26,7 +26,11 @@ }, "extra": { "typo3/cms": { - "extension-key": "my_extension" + "Package": { + "providesPackages": {} + }, + "extension-key": "my_extension", + "version": "1.0.0" } } } diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension/composer.json b/Tests/Functional/Integration/Fixtures/input/my_extension/composer.json index 9da9b50..a277d86 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension/composer.json +++ b/Tests/Functional/Integration/Fixtures/input/my_extension/composer.json @@ -26,7 +26,11 @@ }, "extra": { "typo3/cms": { - "extension-key": "my_extension" + "Package": { + "providesPackages": {} + }, + "extension-key": "my_extension", + "version": "1.0.0" } } } diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/composer.json b/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/composer.json index cc1e09b..93efc5d 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/composer.json +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_controller/composer.json @@ -26,7 +26,11 @@ }, "extra": { "typo3/cms": { - "extension-key": "my_extension" + "Package": { + "providesPackages": {} + }, + "extension-key": "my_extension", + "version": "1.0.0" } } } diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/composer.json b/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/composer.json index 9da9b50..a277d86 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/composer.json +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_locallang/composer.json @@ -26,7 +26,11 @@ }, "extra": { "typo3/cms": { - "extension-key": "my_extension" + "Package": { + "providesPackages": {} + }, + "extension-key": "my_extension", + "version": "1.0.0" } } } diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/composer.json b/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/composer.json index 9da9b50..a277d86 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/composer.json +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_model/composer.json @@ -26,7 +26,11 @@ }, "extra": { "typo3/cms": { - "extension-key": "my_extension" + "Package": { + "providesPackages": {} + }, + "extension-key": "my_extension", + "version": "1.0.0" } } } diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/composer.json b/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/composer.json index 9da9b50..a277d86 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/composer.json +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_services_yaml/composer.json @@ -26,7 +26,11 @@ }, "extra": { "typo3/cms": { - "extension-key": "my_extension" + "Package": { + "providesPackages": {} + }, + "extension-key": "my_extension", + "version": "1.0.0" } } } diff --git a/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/composer.json b/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/composer.json index 9da9b50..a277d86 100644 --- a/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/composer.json +++ b/Tests/Functional/Integration/Fixtures/input/my_extension_with_set/composer.json @@ -26,7 +26,11 @@ }, "extra": { "typo3/cms": { - "extension-key": "my_extension" + "Package": { + "providesPackages": {} + }, + "extension-key": "my_extension", + "version": "1.0.0" } } } diff --git a/Tests/Functional/Integration/Fixtures/make_testenv/composer.json b/Tests/Functional/Integration/Fixtures/make_testenv/composer.json index 04e0105..621c08b 100644 --- a/Tests/Functional/Integration/Fixtures/make_testenv/composer.json +++ b/Tests/Functional/Integration/Fixtures/make_testenv/composer.json @@ -29,8 +29,12 @@ }, "extra": { "typo3/cms": { + "Package": { + "providesPackages": {} + }, "app-dir": ".Build", "extension-key": "my_extension", + "version": "1.0.0", "web-dir": ".Build/public" } }, diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/composer.json b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/composer.json index 9da9b50..a277d86 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/composer.json +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_initializeObject/composer.json @@ -26,7 +26,11 @@ }, "extra": { "typo3/cms": { - "extension-key": "my_extension" + "Package": { + "providesPackages": {} + }, + "extension-key": "my_extension", + "version": "1.0.0" } } } diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/composer.json b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/composer.json index 9da9b50..a277d86 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/composer.json +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_and_mapping/composer.json @@ -26,7 +26,11 @@ }, "extra": { "typo3/cms": { - "extension-key": "my_extension" + "Package": { + "providesPackages": {} + }, + "extension-key": "my_extension", + "version": "1.0.0" } } } diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/composer.json b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/composer.json index 9da9b50..a277d86 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/composer.json +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified/composer.json @@ -26,7 +26,11 @@ }, "extra": { "typo3/cms": { - "extension-key": "my_extension" + "Package": { + "providesPackages": {} + }, + "extension-key": "my_extension", + "version": "1.0.0" } } } diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/composer.json b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/composer.json index 9da9b50..a277d86 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/composer.json +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_model_modified_datetime/composer.json @@ -26,7 +26,11 @@ }, "extra": { "typo3/cms": { - "extension-key": "my_extension" + "Package": { + "providesPackages": {} + }, + "extension-key": "my_extension", + "version": "1.0.0" } } } diff --git a/Tests/Functional/Integration/Fixtures/my_extension_with_module/composer.json b/Tests/Functional/Integration/Fixtures/my_extension_with_module/composer.json index cc1e09b..93efc5d 100644 --- a/Tests/Functional/Integration/Fixtures/my_extension_with_module/composer.json +++ b/Tests/Functional/Integration/Fixtures/my_extension_with_module/composer.json @@ -26,7 +26,11 @@ }, "extra": { "typo3/cms": { - "extension-key": "my_extension" + "Package": { + "providesPackages": {} + }, + "extension-key": "my_extension", + "version": "1.0.0" } } } From caf014bc5395e6607eaf6abcee0e8593e3fa2d41 Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sun, 3 May 2026 00:07:25 +0200 Subject: [PATCH 15/16] [TASK] Remove ext_emconf.php and enhance composer.json structure Remove the deprecated `ext_emconf.php` file and migrate metadata to `composer.json`, including `Package` metadata and `version`, aligning with modern TYPO3 standards. --- composer.json | 4 ++++ ext_emconf.php | 32 -------------------------------- 2 files changed, 4 insertions(+), 32 deletions(-) delete mode 100644 ext_emconf.php diff --git a/composer.json b/composer.json index fdf6cc5..92dd8bc 100644 --- a/composer.json +++ b/composer.json @@ -77,8 +77,12 @@ }, "extra": { "typo3/cms": { + "Package": { + "providesPackages": {} + }, "app-dir": ".Build", "extension-key": "kickstarter", + "version": "0.4.0", "web-dir": ".Build/public" } } diff --git a/ext_emconf.php b/ext_emconf.php deleted file mode 100644 index fa661eb..0000000 --- a/ext_emconf.php +++ /dev/null @@ -1,32 +0,0 @@ - 'Extension Kickstarter', - 'description' => 'Kickstart TYPO3 Extension', - 'category' => 'module', - 'author' => 'Kickstarter Development Team', - 'author_email' => 'friendsof@typo3.org', - 'state' => 'beta', - 'author_company' => '', - 'version' => '0.4.0', - 'constraints' => [ - 'depends' => [ - 'typo3' => '14.0.0-14.3.99', - 'install' => '13.4.3-13.4.99', - ], - 'conflicts' => [ - 'make' => '*', - ], - 'suggests' => [ - ], - ], -]; From 7c2c818d6ee36d51a982ab8b7d797fd863dc4c9e Mon Sep 17 00:00:00 2001 From: Stefan Froemken Date: Sun, 3 May 2026 00:09:04 +0200 Subject: [PATCH 16/16] [TASK] Remove ext_emconf.php from Rector paths Exclude `ext_emconf.php` from Rector's analyzed paths to align with its deprecation and removal in favor of `composer.json`. --- Build/rector/rector.php | 1 - 1 file changed, 1 deletion(-) diff --git a/Build/rector/rector.php b/Build/rector/rector.php index ba6e209..e231ebf 100644 --- a/Build/rector/rector.php +++ b/Build/rector/rector.php @@ -25,7 +25,6 @@ __DIR__ . '/../../Classes', __DIR__ . '/../../Configuration', __DIR__ . '/../../Tests', - __DIR__ . '/../../ext_emconf.php', ]) ->withPreparedSets( deadCode: true,