Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update recipes via new yaml-to-php converter #53

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

alexander-schranz
Copy link
Member

@alexander-schranz alexander-schranz commented Sep 18, 2023

This is a test with udpated dependencies of the yaml-to-php converter: schranz-php-recipes/symfony-recipes-yaml-to-php-converter#10

This includes new version of:

  • ECS
  • simplify/config-transformer
Bildschirmfoto 2023-09-18 um 15 24 59

@github-actions
Copy link

Thanks for the PR 😍

How to test these changes in your application

  1. Define the SYMFONY_ENDPOINT environment variable:

    # On Unix-like (BSD, Linux and macOS)
    export SYMFONY_ENDPOINT=https://raw.githubusercontent.com/schranz-php-recipes/symfony-recipes-php/flex/pull-53/index.json
    # On Windows
    SET SYMFONY_ENDPOINT=https://raw.githubusercontent.com/schranz-php-recipes/symfony-recipes-php/flex/pull-53/index.json
  2. Install the package(s) related to this recipe:

    composer req 'symfony/flex:^1.16'
    composer req 'api-platform/admin-pack:^1.0' 'api-platform/core:^3.1' 'doctrine/doctrine-bundle:^2.10' 'hautelook/alice-bundle:^2.2' 'league/oauth2-server-bundle:^0.4' 'nelmio/alice:^3.3' 'nelmio/cors-bundle:^1.5' 'nelmio/security-bundle:^2.4' 'scheb/2fa-bundle:^6.0' 'symfony/asset-mapper:^6.3' 'symfony/console:^5.3' 'symfony/framework-bundle:^7.0' 'symfony/monolog-bundle:^3.7' 'symfony/notifier:^5.0' 'symfony/translation:^6.3' 'symfony/web-profiler-bundle:^6.1' 'zenstruck/foundry:^1.10'
  3. Don't forget to unset the SYMFONY_ENDPOINT environment variable when done:

    # On Unix-like (BSD, Linux and macOS)
    unset SYMFONY_ENDPOINT
    # On Windows
    SET SYMFONY_ENDPOINT=

Diff between recipe versions

In order to help with the review stage, I'm in charge of computing the diff between the various versions of patched recipes.
I'm going keep this comment up to date with any updates of the attached patch.

api-platform/core

2.1 vs 2.5
diff --git a/api-platform/core/2.1/config/packages/api_platform.php b/api-platform/core/2.5/config/packages/api_platform.php
index 4798afb..f3c5879 100644
--- a/api-platform/core/2.1/config/packages/api_platform.php
+++ b/api-platform/core/2.5/config/packages/api_platform.php
@@ -11,5 +11,15 @@ return static function (ContainerConfigurator $containerConfigurator): void {
                 '%kernel.project_dir%/src/Entity',
             ],
         ],
+        'patch_formats' => [
+            'json' => [
+                'application/merge-patch+json',
+            ],
+        ],
+        'swagger' => [
+            'versions' => [
+                3,
+            ],
+        ],
     ]);
 };
2.5 vs 3.0
diff --git a/api-platform/core/2.5/config/packages/api_platform.php b/api-platform/core/2.5/config/packages/api_platform.php
deleted file mode 100644
index f3c5879..0000000
--- a/api-platform/core/2.5/config/packages/api_platform.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->extension('api_platform', [
-        'mapping' => [
-            'paths' => [
-                '%kernel.project_dir%/src/Entity',
-            ],
-        ],
-        'patch_formats' => [
-            'json' => [
-                'application/merge-patch+json',
-            ],
-        ],
-        'swagger' => [
-            'versions' => [
-                3,
-            ],
-        ],
-    ]);
-};
diff --git a/api-platform/core/2.5/manifest.json b/api-platform/core/3.0/manifest.json
index a886a48..af16452 100644
--- a/api-platform/core/2.5/manifest.json
+++ b/api-platform/core/3.0/manifest.json
@@ -1,6 +1,6 @@
 {
     "bundles": {
-        "ApiPlatform\\Core\\Bridge\\Symfony\\Bundle\\ApiPlatformBundle": ["all"]
+        "ApiPlatform\\Symfony\\Bundle\\ApiPlatformBundle": ["all"]
     },
     "copy-from-recipe": {
         "config/": "%CONFIG_DIR%/",
diff --git a/api-platform/core/2.5/src/Entity/.gitignore b/api-platform/core/3.0/src/ApiResource/.gitignore
similarity index 100%
rename from api-platform/core/2.5/src/Entity/.gitignore
rename to api-platform/core/3.0/src/ApiResource/.gitignore
3.0 vs 3.1
diff --git a/api-platform/core/3.1/config/packages/api_platform.php b/api-platform/core/3.1/config/packages/api_platform.php
new file mode 100644
index 0000000..f88b587
--- /dev/null
+++ b/api-platform/core/3.1/config/packages/api_platform.php
@@ -0,0 +1,25 @@
+<?php
+
+declare(strict_types=1);
+
+use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
+
+return static function (ContainerConfigurator $containerConfigurator): void {
+    $containerConfigurator->extension('api_platform', [
+        'title' => 'Hello API Platform',
+        'version' => '1.0.0',
+        'defaults' => [
+            'stateless' => true,
+            'cache_headers' => [
+                'vary' => [
+                    'Content-Type',
+                    'Authorization',
+                    'Origin',
+                ],
+            ],
+            'extra_properties' => [
+                'standard_put' => true,
+            ],
+        ],
+    ]);
+};

doctrine/doctrine-bundle

1.6 vs 1.12
diff --git a/doctrine/doctrine-bundle/1.6/config/packages/doctrine.php b/doctrine/doctrine-bundle/1.12/config/packages/doctrine.php
index c93732f..aa66d26 100644
--- a/doctrine/doctrine-bundle/1.6/config/packages/doctrine.php
+++ b/doctrine/doctrine-bundle/1.12/config/packages/doctrine.php
@@ -15,7 +15,7 @@ return static function (ContainerConfigurator $containerConfigurator): void {
         ],
         'orm' => [
             'auto_generate_proxy_classes' => true,
-            'naming_strategy' => 'doctrine.orm.naming_strategy.underscore',
+            'naming_strategy' => 'doctrine.orm.naming_strategy.underscore_number_aware',
             'auto_mapping' => true,
             'mappings' => [
                 'App' => [
diff --git a/doctrine/doctrine-bundle/1.6/config/packages/prod/doctrine.php b/doctrine/doctrine-bundle/1.12/config/packages/prod/doctrine.php
index 6a0ccb0..dd81ae3 100644
--- a/doctrine/doctrine-bundle/1.6/config/packages/prod/doctrine.php
+++ b/doctrine/doctrine-bundle/1.12/config/packages/prod/doctrine.php
@@ -3,41 +3,26 @@
 declare(strict_types=1);
 
 use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-use function Symfony\Component\DependencyInjection\Loader\Configurator\service;
 
 return static function (ContainerConfigurator $containerConfigurator): void {
     $containerConfigurator->extension('doctrine', [
         'orm' => [
             'auto_generate_proxy_classes' => false,
             'metadata_cache_driver' => [
-                'type' => 'service',
-                'id' => 'doctrine.system_cache_provider',
+                'type' => 'pool',
+                'pool' => 'doctrine.system_cache_pool',
             ],
             'query_cache_driver' => [
-                'type' => 'service',
-                'id' => 'doctrine.system_cache_provider',
+                'type' => 'pool',
+                'pool' => 'doctrine.system_cache_pool',
             ],
             'result_cache_driver' => [
-                'type' => 'service',
-                'id' => 'doctrine.result_cache_provider',
+                'type' => 'pool',
+                'pool' => 'doctrine.result_cache_pool',
             ],
         ],
     ]);
 
-    $services = $containerConfigurator->services();
-
-    $services->set('doctrine.result_cache_provider', 'Symfony\Component\Cache\DoctrineProvider')
-        ->private()
-        ->args([
-        service('doctrine.result_cache_pool'),
-    ]);
-
-    $services->set('doctrine.system_cache_provider', 'Symfony\Component\Cache\DoctrineProvider')
-        ->private()
-        ->args([
-        service('doctrine.system_cache_pool'),
-    ]);
-
     $containerConfigurator->extension('framework', [
         'cache' => [
             'pools' => [
diff --git a/doctrine/doctrine-bundle/1.6/manifest.json b/doctrine/doctrine-bundle/1.12/manifest.json
index dca9096..754bce8 100644
--- a/doctrine/doctrine-bundle/1.6/manifest.json
+++ b/doctrine/doctrine-bundle/1.12/manifest.json
@@ -11,8 +11,8 @@
         "#2": "IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml",
         "#3": "",
         "#4": "DATABASE_URL=\"sqlite:///%kernel.project_dir%/var/data.db\"",
-        "#5": "DATABASE_URL=\"mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8\"",
-        "DATABASE_URL": "postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&charset=utf8"
+        "#5": "DATABASE_URL=\"mysql://app:!ChangeMe!@127.0.0.1:3306/db_name?serverVersion=8\"",
+        "DATABASE_URL": "postgresql://app:!ChangeMe!@127.0.0.1:5432/db_name?serverVersion=15&charset=utf8"
     },
     "dockerfile": [
         "RUN apk add --no-cache --virtual .pgsql-deps postgresql-dev && \\",
1.12 vs 2.0
diff --git a/doctrine/doctrine-bundle/1.12/config/packages/doctrine.php b/doctrine/doctrine-bundle/2.0/config/packages/doctrine.php
index aa66d26..e210ec1 100644
--- a/doctrine/doctrine-bundle/1.12/config/packages/doctrine.php
+++ b/doctrine/doctrine-bundle/2.0/config/packages/doctrine.php
@@ -8,10 +8,6 @@ return static function (ContainerConfigurator $containerConfigurator): void {
     $containerConfigurator->extension('doctrine', [
         'dbal' => [
             'url' => '%env(resolve:DATABASE_URL)%',
-            'charset' => 'utf8mb4',
-            'default_table_options' => [
-                'collate' => 'utf8mb4_unicode_ci',
-            ],
         ],
         'orm' => [
             'auto_generate_proxy_classes' => true,
diff --git a/doctrine/doctrine-bundle/1.12/manifest.json b/doctrine/doctrine-bundle/2.0/manifest.json
index 754bce8..dca9096 100644
--- a/doctrine/doctrine-bundle/1.12/manifest.json
+++ b/doctrine/doctrine-bundle/2.0/manifest.json
@@ -11,8 +11,8 @@
         "#2": "IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml",
         "#3": "",
         "#4": "DATABASE_URL=\"sqlite:///%kernel.project_dir%/var/data.db\"",
-        "#5": "DATABASE_URL=\"mysql://app:!ChangeMe!@127.0.0.1:3306/db_name?serverVersion=8\"",
-        "DATABASE_URL": "postgresql://app:!ChangeMe!@127.0.0.1:5432/db_name?serverVersion=15&charset=utf8"
+        "#5": "DATABASE_URL=\"mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8\"",
+        "DATABASE_URL": "postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&charset=utf8"
     },
     "dockerfile": [
         "RUN apk add --no-cache --virtual .pgsql-deps postgresql-dev && \\",
2.0 vs 2.3
diff --git a/doctrine/doctrine-bundle/2.0/config/packages/prod/doctrine.php b/doctrine/doctrine-bundle/2.3/config/packages/prod/doctrine.php
index dd81ae3..20e0bf6 100644
--- a/doctrine/doctrine-bundle/2.0/config/packages/prod/doctrine.php
+++ b/doctrine/doctrine-bundle/2.3/config/packages/prod/doctrine.php
@@ -8,10 +8,6 @@ return static function (ContainerConfigurator $containerConfigurator): void {
     $containerConfigurator->extension('doctrine', [
         'orm' => [
             'auto_generate_proxy_classes' => false,
-            'metadata_cache_driver' => [
-                'type' => 'pool',
-                'pool' => 'doctrine.system_cache_pool',
-            ],
             'query_cache_driver' => [
                 'type' => 'pool',
                 'pool' => 'doctrine.system_cache_pool',
diff --git a/doctrine/doctrine-bundle/2.3/config/packages/test/doctrine.php b/doctrine/doctrine-bundle/2.3/config/packages/test/doctrine.php
new file mode 100644
index 0000000..d1f2212
--- /dev/null
+++ b/doctrine/doctrine-bundle/2.3/config/packages/test/doctrine.php
@@ -0,0 +1,13 @@
+<?php
+
+declare(strict_types=1);
+
+use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
+
+return static function (ContainerConfigurator $containerConfigurator): void {
+    $containerConfigurator->extension('doctrine', [
+        'dbal' => [
+            'dbname' => 'main_test%env(default::TEST_TOKEN)%',
+        ],
+    ]);
+};
diff --git a/doctrine/doctrine-bundle/2.0/manifest.json b/doctrine/doctrine-bundle/2.3/manifest.json
index dca9096..f673cbc 100644
--- a/doctrine/doctrine-bundle/2.0/manifest.json
+++ b/doctrine/doctrine-bundle/2.3/manifest.json
@@ -11,13 +11,13 @@
         "#2": "IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml",
         "#3": "",
         "#4": "DATABASE_URL=\"sqlite:///%kernel.project_dir%/var/data.db\"",
-        "#5": "DATABASE_URL=\"mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8\"",
+        "#5": "DATABASE_URL=\"mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8&charset=utf8mb4\"",
         "DATABASE_URL": "postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&charset=utf8"
     },
     "dockerfile": [
-        "RUN apk add --no-cache --virtual .pgsql-deps postgresql-dev && \\",
-        "\tdocker-php-ext-install -j$(nproc) pdo_pgsql && \\",
-        "\tapk add --no-cache --virtual .pgsql-rundeps so:libpq.so.5 && \\",
+        "RUN apk add --no-cache --virtual .pgsql-deps postgresql-dev; \\",
+        "\tdocker-php-ext-install -j$(nproc) pdo_pgsql; \\",
+        "\tapk add --no-cache --virtual .pgsql-rundeps so:libpq.so.5; \\",
         "\tapk del .pgsql-deps"
     ],
     "docker-compose": {
2.3 vs 2.4
diff --git a/doctrine/doctrine-bundle/2.3/config/packages/doctrine.php b/doctrine/doctrine-bundle/2.4/config/packages/doctrine.php
index e210ec1..401ce10 100644
--- a/doctrine/doctrine-bundle/2.3/config/packages/doctrine.php
+++ b/doctrine/doctrine-bundle/2.4/config/packages/doctrine.php
@@ -16,7 +16,6 @@ return static function (ContainerConfigurator $containerConfigurator): void {
             'mappings' => [
                 'App' => [
                     'is_bundle' => false,
-                    'type' => 'annotation',
                     'dir' => '%kernel.project_dir%/src/Entity',
                     'prefix' => 'App\Entity',
                     'alias' => 'App',
@@ -24,4 +23,39 @@ return static function (ContainerConfigurator $containerConfigurator): void {
             ],
         ],
     ]);
+    if ($containerConfigurator->env() === 'test') {
+        $containerConfigurator->extension('doctrine', [
+            'dbal' => [
+                'dbname_suffix' => '_test%env(default::TEST_TOKEN)%',
+            ],
+        ]);
+    }
+    if ($containerConfigurator->env() === 'prod') {
+        $containerConfigurator->extension('doctrine', [
+            'orm' => [
+                'auto_generate_proxy_classes' => false,
+                'proxy_dir' => '%kernel.build_dir%/doctrine/orm/Proxies',
+                'query_cache_driver' => [
+                    'type' => 'pool',
+                    'pool' => 'doctrine.system_cache_pool',
+                ],
+                'result_cache_driver' => [
+                    'type' => 'pool',
+                    'pool' => 'doctrine.result_cache_pool',
+                ],
+            ],
+        ]);
+        $containerConfigurator->extension('framework', [
+            'cache' => [
+                'pools' => [
+                    'doctrine.result_cache_pool' => [
+                        'adapter' => 'cache.app',
+                    ],
+                    'doctrine.system_cache_pool' => [
+                        'adapter' => 'cache.system',
+                    ],
+                ],
+            ],
+        ]);
+    }
 };
diff --git a/doctrine/doctrine-bundle/2.3/config/packages/prod/doctrine.php b/doctrine/doctrine-bundle/2.3/config/packages/prod/doctrine.php
deleted file mode 100644
index 20e0bf6..0000000
--- a/doctrine/doctrine-bundle/2.3/config/packages/prod/doctrine.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->extension('doctrine', [
-        'orm' => [
-            'auto_generate_proxy_classes' => false,
-            'query_cache_driver' => [
-                'type' => 'pool',
-                'pool' => 'doctrine.system_cache_pool',
-            ],
-            'result_cache_driver' => [
-                'type' => 'pool',
-                'pool' => 'doctrine.result_cache_pool',
-            ],
-        ],
-    ]);
-
-    $containerConfigurator->extension('framework', [
-        'cache' => [
-            'pools' => [
-                'doctrine.result_cache_pool' => [
-                    'adapter' => 'cache.app',
-                ],
-                'doctrine.system_cache_pool' => [
-                    'adapter' => 'cache.system',
-                ],
-            ],
-        ],
-    ]);
-};
diff --git a/doctrine/doctrine-bundle/2.3/config/packages/test/doctrine.php b/doctrine/doctrine-bundle/2.3/config/packages/test/doctrine.php
deleted file mode 100644
index d1f2212..0000000
--- a/doctrine/doctrine-bundle/2.3/config/packages/test/doctrine.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->extension('doctrine', [
-        'dbal' => [
-            'dbname' => 'main_test%env(default::TEST_TOKEN)%',
-        ],
-    ]);
-};
diff --git a/doctrine/doctrine-bundle/2.3/manifest.json b/doctrine/doctrine-bundle/2.4/manifest.json
index f673cbc..472f48f 100644
--- a/doctrine/doctrine-bundle/2.3/manifest.json
+++ b/doctrine/doctrine-bundle/2.4/manifest.json
@@ -44,5 +44,8 @@
                 "    - \"5432\""
             ]
         }
+    },
+    "conflict": {
+        "symfony/framework-bundle": "<5.3"
     }
 }
2.4 vs 2.8
diff --git a/doctrine/doctrine-bundle/2.4/config/packages/doctrine.php b/doctrine/doctrine-bundle/2.8/config/packages/doctrine.php
index 401ce10..d625cfa 100644
--- a/doctrine/doctrine-bundle/2.4/config/packages/doctrine.php
+++ b/doctrine/doctrine-bundle/2.8/config/packages/doctrine.php
@@ -11,6 +11,7 @@ return static function (ContainerConfigurator $containerConfigurator): void {
         ],
         'orm' => [
             'auto_generate_proxy_classes' => true,
+            'enable_lazy_ghost_objects' => true,
             'naming_strategy' => 'doctrine.orm.naming_strategy.underscore_number_aware',
             'auto_mapping' => true,
             'mappings' => [
diff --git a/doctrine/doctrine-bundle/2.4/manifest.json b/doctrine/doctrine-bundle/2.8/manifest.json
index 472f48f..fc8c043 100644
--- a/doctrine/doctrine-bundle/2.4/manifest.json
+++ b/doctrine/doctrine-bundle/2.8/manifest.json
@@ -11,12 +11,13 @@
         "#2": "IMPORTANT: You MUST configure your server version, either here or in config/packages/doctrine.yaml",
         "#3": "",
         "#4": "DATABASE_URL=\"sqlite:///%kernel.project_dir%/var/data.db\"",
-        "#5": "DATABASE_URL=\"mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8&charset=utf8mb4\"",
+        "#5": "DATABASE_URL=\"mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=8.0.32&charset=utf8mb4\"",
+        "#6": "DATABASE_URL=\"mysql://app:!ChangeMe!@127.0.0.1:3306/app?serverVersion=10.11.2-MariaDB&charset=utf8mb4\"",
         "DATABASE_URL": "postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&charset=utf8"
     },
     "dockerfile": [
         "RUN apk add --no-cache --virtual .pgsql-deps postgresql-dev; \\",
-        "\tdocker-php-ext-install -j$(nproc) pdo_pgsql; \\",
+        "\tdocker-php-ext-install -j\"$(nproc)\" pdo_pgsql; \\",
         "\tapk add --no-cache --virtual .pgsql-rundeps so:libpq.so.5; \\",
         "\tapk del .pgsql-deps"
     ],
@@ -46,6 +47,8 @@
         }
     },
     "conflict": {
+        "doctrine/orm": "<2.14",
+        "symfony/dependency-injection": "<6.2",
         "symfony/framework-bundle": "<5.3"
     }
 }
2.8 vs 2.9
diff --git a/doctrine/doctrine-bundle/2.8/manifest.json b/doctrine/doctrine-bundle/2.9/manifest.json
index fc8c043..86f138e 100644
--- a/doctrine/doctrine-bundle/2.8/manifest.json
+++ b/doctrine/doctrine-bundle/2.9/manifest.json
@@ -16,10 +16,7 @@
         "DATABASE_URL": "postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&charset=utf8"
     },
     "dockerfile": [
-        "RUN apk add --no-cache --virtual .pgsql-deps postgresql-dev; \\",
-        "\tdocker-php-ext-install -j\"$(nproc)\" pdo_pgsql; \\",
-        "\tapk add --no-cache --virtual .pgsql-rundeps so:libpq.so.5; \\",
-        "\tapk del .pgsql-deps"
+        "RUN install-php-extensions pdo_pgsql"
     ],
     "docker-compose": {
         "docker-compose.yml": {
2.9 vs 2.10
diff --git a/doctrine/doctrine-bundle/2.9/config/packages/doctrine.php b/doctrine/doctrine-bundle/2.10/config/packages/doctrine.php
index d625cfa..ad0307f 100644
--- a/doctrine/doctrine-bundle/2.9/config/packages/doctrine.php
+++ b/doctrine/doctrine-bundle/2.10/config/packages/doctrine.php
@@ -8,10 +8,13 @@ return static function (ContainerConfigurator $containerConfigurator): void {
     $containerConfigurator->extension('doctrine', [
         'dbal' => [
             'url' => '%env(resolve:DATABASE_URL)%',
+            'profiling_collect_backtrace' => '%kernel.debug%',
         ],
         'orm' => [
             'auto_generate_proxy_classes' => true,
             'enable_lazy_ghost_objects' => true,
+            'report_fields_where_declared' => true,
+            'validate_xml_mapping' => true,
             'naming_strategy' => 'doctrine.orm.naming_strategy.underscore_number_aware',
             'auto_mapping' => true,
             'mappings' => [
diff --git a/doctrine/doctrine-bundle/2.9/manifest.json b/doctrine/doctrine-bundle/2.10/manifest.json
index 86f138e..fc8c043 100644
--- a/doctrine/doctrine-bundle/2.9/manifest.json
+++ b/doctrine/doctrine-bundle/2.10/manifest.json
@@ -16,7 +16,10 @@
         "DATABASE_URL": "postgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=15&charset=utf8"
     },
     "dockerfile": [
-        "RUN install-php-extensions pdo_pgsql"
+        "RUN apk add --no-cache --virtual .pgsql-deps postgresql-dev; \\",
+        "\tdocker-php-ext-install -j\"$(nproc)\" pdo_pgsql; \\",
+        "\tapk add --no-cache --virtual .pgsql-rundeps so:libpq.so.5; \\",
+        "\tapk del .pgsql-deps"
     ],
     "docker-compose": {
         "docker-compose.yml": {

hautelook/alice-bundle

2.1 vs 2.2
diff --git a/hautelook/alice-bundle/2.1/config/packages/dev/hautelook_alice.php b/hautelook/alice-bundle/2.1/config/packages/dev/hautelook_alice.php
deleted file mode 100644
index 8cbb12a..0000000
--- a/hautelook/alice-bundle/2.1/config/packages/dev/hautelook_alice.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->extension('hautelook_alice', [
-        'fixtures_path' => 'fixtures',
-    ]);
-};
diff --git a/hautelook/alice-bundle/2.2/config/packages/hautelook_alice.php b/hautelook/alice-bundle/2.2/config/packages/hautelook_alice.php
new file mode 100644
index 0000000..8675a20
--- /dev/null
+++ b/hautelook/alice-bundle/2.2/config/packages/hautelook_alice.php
@@ -0,0 +1,18 @@
+<?php
+
+declare(strict_types=1);
+
+use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
+
+return static function (ContainerConfigurator $containerConfigurator): void {
+    if ($containerConfigurator->env() === 'dev') {
+        $containerConfigurator->extension('hautelook_alice', [
+            'fixtures_path' => 'fixtures',
+        ]);
+    }
+    if ($containerConfigurator->env() === 'test') {
+        $containerConfigurator->extension('hautelook_alice', [
+            'fixtures_path' => 'fixtures',
+        ]);
+    }
+};
diff --git a/hautelook/alice-bundle/2.1/config/packages/test/hautelook_alice.php b/hautelook/alice-bundle/2.1/config/packages/test/hautelook_alice.php
deleted file mode 100644
index 70d8aa0..0000000
--- a/hautelook/alice-bundle/2.1/config/packages/test/hautelook_alice.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->import(__DIR__ . '/../dev/hautelook_alice.php');
-};
diff --git a/hautelook/alice-bundle/2.1/manifest.json b/hautelook/alice-bundle/2.2/manifest.json
index 1492446..cead90b 100644
--- a/hautelook/alice-bundle/2.1/manifest.json
+++ b/hautelook/alice-bundle/2.2/manifest.json
@@ -6,5 +6,8 @@
     "copy-from-recipe": {
         "config/": "%CONFIG_DIR%/",
         "fixtures/": "fixtures/"
+    },
+    "conflict": {
+        "symfony/framework-bundle": "<5.3"
     }
 }

nelmio/alice

3.2 vs 3.3
diff --git a/nelmio/alice/3.2/config/packages/dev/nelmio_alice.php b/nelmio/alice/3.2/config/packages/dev/nelmio_alice.php
deleted file mode 100644
index f2e14db..0000000
--- a/nelmio/alice/3.2/config/packages/dev/nelmio_alice.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->extension('nelmio_alice', [
-        'functions_blacklist' => [
-            'current',
-            'shuffle',
-            'date',
-            'time',
-            'file',
-            'md5',
-            'sha1',
-        ],
-    ]);
-};
diff --git a/nelmio/alice/3.3/config/packages/nelmio_alice.php b/nelmio/alice/3.3/config/packages/nelmio_alice.php
new file mode 100644
index 0000000..b8adaea
--- /dev/null
+++ b/nelmio/alice/3.3/config/packages/nelmio_alice.php
@@ -0,0 +1,34 @@
+<?php
+
+declare(strict_types=1);
+
+use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
+
+return static function (ContainerConfigurator $containerConfigurator): void {
+    if ($containerConfigurator->env() === 'dev') {
+        $containerConfigurator->extension('nelmio_alice', [
+            'functions_blacklist' => [
+                'current',
+                'shuffle',
+                'date',
+                'time',
+                'file',
+                'md5',
+                'sha1',
+            ],
+        ]);
+    }
+    if ($containerConfigurator->env() === 'test') {
+        $containerConfigurator->extension('nelmio_alice', [
+            'functions_blacklist' => [
+                'current',
+                'shuffle',
+                'date',
+                'time',
+                'file',
+                'md5',
+                'sha1',
+            ],
+        ]);
+    }
+};
diff --git a/nelmio/alice/3.2/config/packages/test/nelmio_alice.php b/nelmio/alice/3.2/config/packages/test/nelmio_alice.php
deleted file mode 100644
index 5c6bdf5..0000000
--- a/nelmio/alice/3.2/config/packages/test/nelmio_alice.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->import(__DIR__ . '/../dev/nelmio_alice.php');
-};
diff --git a/nelmio/alice/3.2/manifest.json b/nelmio/alice/3.3/manifest.json
index b974254..1d36be4 100644
--- a/nelmio/alice/3.2/manifest.json
+++ b/nelmio/alice/3.3/manifest.json
@@ -4,5 +4,8 @@
     },
     "copy-from-recipe": {
         "config/": "%CONFIG_DIR%/"
+    },
+    "conflict": {
+        "symfony/framework-bundle": "<5.3"
     }
 }

scheb/2fa-bundle

5.0 vs 6.0
diff --git a/scheb/2fa-bundle/5.0/config/packages/scheb_2fa.php b/scheb/2fa-bundle/6.0/config/packages/scheb_2fa.php
index ba00a8c..7168be7 100644
--- a/scheb/2fa-bundle/5.0/config/packages/scheb_2fa.php
+++ b/scheb/2fa-bundle/6.0/config/packages/scheb_2fa.php
@@ -8,6 +8,7 @@ return static function (ContainerConfigurator $containerConfigurator): void {
     $containerConfigurator->extension('scheb_two_factor', [
         'security_tokens' => [
             'Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken',
+            'Symfony\Component\Security\Http\Authenticator\Token\PostAuthenticationToken',
         ],
     ]);
 };

symfony/console

3.3 vs 4.2
diff --git a/symfony/console/3.3/config/bootstrap.php b/symfony/console/4.2/config/bootstrap.php
index 2a47186..55560fb 100644
--- a/symfony/console/3.3/config/bootstrap.php
+++ b/symfony/console/4.2/config/bootstrap.php
@@ -13,38 +13,8 @@ if (!class_exists(Dotenv::class)) {
 if (is_array($env = @include dirname(__DIR__).'/.env.local.php') && (!isset($env['APP_ENV']) || ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env['APP_ENV']) === $env['APP_ENV'])) {
     (new Dotenv(false))->populate($env);
 } else {
-    $path = dirname(__DIR__).'/.env';
-    $dotenv = new Dotenv(false);
-
     // load all the .env files
-    if (method_exists($dotenv, 'loadEnv')) {
-        $dotenv->loadEnv($path);
-    } else {
-        // fallback code in case your Dotenv component is not 4.2 or higher (when loadEnv() was added)
-
-        if (file_exists($path) || !file_exists($p = "$path.dist")) {
-            $dotenv->load($path);
-        } else {
-            $dotenv->load($p);
-        }
-
-        if (null === $env = $_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) {
-            $dotenv->populate(array('APP_ENV' => $env = 'dev'));
-        }
-
-        if ('test' !== $env && file_exists($p = "$path.local")) {
-            $dotenv->load($p);
-            $env = $_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env;
-        }
-
-        if (file_exists($p = "$path.$env")) {
-            $dotenv->load($p);
-        }
-
-        if (file_exists($p = "$path.$env.local")) {
-            $dotenv->load($p);
-        }
-    }
+    (new Dotenv(false))->loadEnv(dirname(__DIR__).'/.env');
 }
 
 $_SERVER += $_ENV;
4.2 vs 4.4
diff --git a/symfony/console/4.2/bin/console b/symfony/console/4.4/bin/console
index 5cef879..5de0e1c 100755
--- a/symfony/console/4.2/bin/console
+++ b/symfony/console/4.4/bin/console
@@ -4,7 +4,7 @@
 use App\Kernel;
 use Symfony\Bundle\FrameworkBundle\Console\Application;
 use Symfony\Component\Console\Input\ArgvInput;
-use Symfony\Component\Debug\Debug;
+use Symfony\Component\ErrorHandler\Debug;
 
 if (!in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
     echo 'Warning: The console should be invoked via the CLI version of PHP, not the '.PHP_SAPI.' SAPI'.PHP_EOL;
4.4 vs 5.1
diff --git a/symfony/console/4.4/bin/console b/symfony/console/5.1/bin/console
index 5de0e1c..8fe9d49 100755
--- a/symfony/console/4.4/bin/console
+++ b/symfony/console/5.1/bin/console
@@ -4,6 +4,7 @@
 use App\Kernel;
 use Symfony\Bundle\FrameworkBundle\Console\Application;
 use Symfony\Component\Console\Input\ArgvInput;
+use Symfony\Component\Dotenv\Dotenv;
 use Symfony\Component\ErrorHandler\Debug;
 
 if (!in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
@@ -14,8 +15,8 @@ set_time_limit(0);
 
 require dirname(__DIR__).'/vendor/autoload.php';
 
-if (!class_exists(Application::class)) {
-    throw new LogicException('You need to add "symfony/framework-bundle" as a Composer dependency.');
+if (!class_exists(Application::class) || !class_exists(Dotenv::class)) {
+    throw new LogicException('You need to add "symfony/framework-bundle" and "symfony/dotenv" as Composer dependencies.');
 }
 
 $input = new ArgvInput();
@@ -27,7 +28,7 @@ if ($input->hasParameterOption('--no-debug', true)) {
     putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
 }
 
-require dirname(__DIR__).'/config/bootstrap.php';
+(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
 
 if ($_SERVER['APP_DEBUG']) {
     umask(0000);
diff --git a/symfony/console/4.4/config/bootstrap.php b/symfony/console/4.4/config/bootstrap.php
deleted file mode 100644
index 55560fb..0000000
--- a/symfony/console/4.4/config/bootstrap.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-use Symfony\Component\Dotenv\Dotenv;
-
-require dirname(__DIR__).'/vendor/autoload.php';
-
-if (!class_exists(Dotenv::class)) {
-    throw new LogicException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.');
-}
-
-// Load cached env vars if the .env.local.php file exists
-// Run "composer dump-env prod" to create it (requires symfony/flex >=1.2)
-if (is_array($env = @include dirname(__DIR__).'/.env.local.php') && (!isset($env['APP_ENV']) || ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env['APP_ENV']) === $env['APP_ENV'])) {
-    (new Dotenv(false))->populate($env);
-} else {
-    // load all the .env files
-    (new Dotenv(false))->loadEnv(dirname(__DIR__).'/.env');
-}
-
-$_SERVER += $_ENV;
-$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: 'dev';
-$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV'];
-$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN) ? '1' : '0';
diff --git a/symfony/console/4.4/manifest.json b/symfony/console/5.1/manifest.json
index c00421d..b0e9e1d 100644
--- a/symfony/console/4.4/manifest.json
+++ b/symfony/console/5.1/manifest.json
@@ -1,7 +1,6 @@
 {
     "copy-from-recipe": {
-        "bin/": "%BIN_DIR%/",
-        "config/": "%CONFIG_DIR%/"
+        "bin/": "%BIN_DIR%/"
     },
     "aliases": ["cli"]
 }
5.1 vs 5.3
diff --git a/symfony/console/5.1/bin/console b/symfony/console/5.3/bin/console
index 8fe9d49..c933dc5 100755
--- a/symfony/console/5.1/bin/console
+++ b/symfony/console/5.3/bin/console
@@ -3,41 +3,15 @@
 
 use App\Kernel;
 use Symfony\Bundle\FrameworkBundle\Console\Application;
-use Symfony\Component\Console\Input\ArgvInput;
-use Symfony\Component\Dotenv\Dotenv;
-use Symfony\Component\ErrorHandler\Debug;
 
-if (!in_array(PHP_SAPI, ['cli', 'phpdbg', 'embed'], true)) {
-    echo 'Warning: The console should be invoked via the CLI version of PHP, not the '.PHP_SAPI.' SAPI'.PHP_EOL;
+if (!is_file(dirname(__DIR__).'/vendor/autoload_runtime.php')) {
+    throw new LogicException('Symfony Runtime is missing. Try running "composer require symfony/runtime".');
 }
 
-set_time_limit(0);
+require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
 
-require dirname(__DIR__).'/vendor/autoload.php';
+return function (array $context) {
+    $kernel = new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
 
-if (!class_exists(Application::class) || !class_exists(Dotenv::class)) {
-    throw new LogicException('You need to add "symfony/framework-bundle" and "symfony/dotenv" as Composer dependencies.');
-}
-
-$input = new ArgvInput();
-if (null !== $env = $input->getParameterOption(['--env', '-e'], null, true)) {
-    putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env);
-}
-
-if ($input->hasParameterOption('--no-debug', true)) {
-    putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
-}
-
-(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
-
-if ($_SERVER['APP_DEBUG']) {
-    umask(0000);
-
-    if (class_exists(Debug::class)) {
-        Debug::enable();
-    }
-}
-
-$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
-$application = new Application($kernel);
-$application->run($input);
+    return new Application($kernel);
+};

symfony/framework-bundle

3.3 vs 3.4
diff --git a/symfony/framework-bundle/3.3/config/packages/framework.php b/symfony/framework-bundle/3.4/config/packages/framework.php
index 53429e9..a20aeaa 100644
--- a/symfony/framework-bundle/3.3/config/packages/framework.php
+++ b/symfony/framework-bundle/3.4/config/packages/framework.php
@@ -9,6 +9,7 @@ return static function (ContainerConfigurator $containerConfigurator): void {
         'secret' => '%env(APP_SECRET)%',
         'session' => [
             'handler_id' => null,
+            'cookie_samesite' => 'lax',
         ],
         'php_errors' => [
             'log' => true,
3.4 vs 4.2
diff --git a/symfony/framework-bundle/3.4/config/bootstrap.php b/symfony/framework-bundle/4.2/config/bootstrap.php
index 2a47186..55560fb 100644
--- a/symfony/framework-bundle/3.4/config/bootstrap.php
+++ b/symfony/framework-bundle/4.2/config/bootstrap.php
@@ -13,38 +13,8 @@ if (!class_exists(Dotenv::class)) {
 if (is_array($env = @include dirname(__DIR__).'/.env.local.php') && (!isset($env['APP_ENV']) || ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env['APP_ENV']) === $env['APP_ENV'])) {
     (new Dotenv(false))->populate($env);
 } else {
-    $path = dirname(__DIR__).'/.env';
-    $dotenv = new Dotenv(false);
-
     // load all the .env files
-    if (method_exists($dotenv, 'loadEnv')) {
-        $dotenv->loadEnv($path);
-    } else {
-        // fallback code in case your Dotenv component is not 4.2 or higher (when loadEnv() was added)
-
-        if (file_exists($path) || !file_exists($p = "$path.dist")) {
-            $dotenv->load($path);
-        } else {
-            $dotenv->load($p);
-        }
-
-        if (null === $env = $_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) {
-            $dotenv->populate(array('APP_ENV' => $env = 'dev'));
-        }
-
-        if ('test' !== $env && file_exists($p = "$path.local")) {
-            $dotenv->load($p);
-            $env = $_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env;
-        }
-
-        if (file_exists($p = "$path.$env")) {
-            $dotenv->load($p);
-        }
-
-        if (file_exists($p = "$path.$env.local")) {
-            $dotenv->load($p);
-        }
-    }
+    (new Dotenv(false))->loadEnv(dirname(__DIR__).'/.env');
 }
 
 $_SERVER += $_ENV;
diff --git a/symfony/framework-bundle/3.4/config/packages/framework.php b/symfony/framework-bundle/4.2/config/packages/framework.php
index a20aeaa..1144bb7 100644
--- a/symfony/framework-bundle/3.4/config/packages/framework.php
+++ b/symfony/framework-bundle/4.2/config/packages/framework.php
@@ -9,6 +9,7 @@ return static function (ContainerConfigurator $containerConfigurator): void {
         'secret' => '%env(APP_SECRET)%',
         'session' => [
             'handler_id' => null,
+            'cookie_secure' => 'auto',
             'cookie_samesite' => 'lax',
         ],
         'php_errors' => [
diff --git a/symfony/framework-bundle/3.4/config/services.php b/symfony/framework-bundle/4.2/config/services.php
index 1b87757..3a9fe9e 100644
--- a/symfony/framework-bundle/3.4/config/services.php
+++ b/symfony/framework-bundle/4.2/config/services.php
@@ -13,7 +13,7 @@ return static function (ContainerConfigurator $containerConfigurator): void {
 
     $services->load('App\\', __DIR__ . '/../src/*')
         ->exclude([
-        __DIR__ . '/../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}',
+        __DIR__ . '/../src/{DependencyInjection,Entity,Kernel.php}',
     ]);
 
     $services->load('App\Controller\\', __DIR__ . '/../src/Controller')
diff --git a/symfony/framework-bundle/3.4/manifest.json b/symfony/framework-bundle/4.2/manifest.json
index aa0150e..101b2aa 100644
--- a/symfony/framework-bundle/3.4/manifest.json
+++ b/symfony/framework-bundle/4.2/manifest.json
@@ -14,13 +14,14 @@
     "env": {
         "APP_ENV": "dev",
         "APP_SECRET": "%generate(secret)%",
-        "#TRUSTED_PROXIES": "127.0.0.1,127.0.0.2",
+        "#TRUSTED_PROXIES": "127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16",
         "#TRUSTED_HOSTS": "'^(localhost|example\\.com)$'"
     },
     "gitignore": [
         "/.env.local",
         "/.env.local.php",
         "/.env.*.local",
+        "/%CONFIG_DIR%/secrets/prod/prod.decrypt.private.php",
         "/%PUBLIC_DIR%/bundles/",
         "/%VAR_DIR%/",
         "/vendor/"
diff --git a/symfony/framework-bundle/3.4/post-install.txt b/symfony/framework-bundle/4.2/post-install.txt
index 944aa06..12f3669 100644
--- a/symfony/framework-bundle/3.4/post-install.txt
+++ b/symfony/framework-bundle/4.2/post-install.txt
@@ -1,7 +1,6 @@
   * Run your application:
     1. Go to the project directory
     2. Create your code repository with the git init command
-    3. Download the Symfony CLI at https://symfony.com/download to install a development web server,
-       or run composer require server --dev for a minimalist one
+    3. Download the Symfony CLI at https://symfony.com/download to install a development web server
 
   * Read the documentation at https://symfony.com/doc
diff --git a/symfony/framework-bundle/3.4/src/Kernel.php b/symfony/framework-bundle/4.2/src/Kernel.php
index 68b7a56..1cd0572 100644
--- a/symfony/framework-bundle/3.4/src/Kernel.php
+++ b/symfony/framework-bundle/4.2/src/Kernel.php
@@ -13,19 +13,9 @@ class Kernel extends BaseKernel
 {
     use MicroKernelTrait;
 
-    const CONFIG_EXTS = '.{php,xml,yaml,yml}';
+    private const CONFIG_EXTS = '.{php,xml,yaml,yml}';
 
-    public function getCacheDir()
-    {
-        return $this->getProjectDir().'/var/cache/'.$this->environment;
-    }
-
-    public function getLogDir()
-    {
-        return $this->getProjectDir().'/var/log';
-    }
-
-    public function registerBundles()
+    public function registerBundles(): iterable
     {
         $contents = require $this->getProjectDir().'/config/bundles.php';
         foreach ($contents as $class => $envs) {
@@ -35,13 +25,16 @@ class Kernel extends BaseKernel
         }
     }
 
-    protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader)
+    public function getProjectDir(): string
+    {
+        return \dirname(__DIR__);
+    }
+
+    protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
     {
         $container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php'));
-        // Feel free to remove the "container.autowiring.strict_mode" parameter
-        // if you are using symfony/dependency-injection 4.0+ as it's the default behavior
-        $container->setParameter('container.autowiring.strict_mode', true);
-        $container->setParameter('container.dumper.inline_class_loader', true);
+        $container->setParameter('container.dumper.inline_class_loader', \PHP_VERSION_ID < 70400 || $this->debug);
+        $container->setParameter('container.dumper.inline_factories', true);
         $confDir = $this->getProjectDir().'/config';
 
         $loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob');
@@ -50,7 +43,7 @@ class Kernel extends BaseKernel
         $loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob');
     }
 
-    protected function configureRoutes(RouteCollectionBuilder $routes)
+    protected function configureRoutes(RouteCollectionBuilder $routes): void
     {
         $confDir = $this->getProjectDir().'/config';
 
4.2 vs 4.4
diff --git a/symfony/framework-bundle/4.4/config/preload.php b/symfony/framework-bundle/4.4/config/preload.php
new file mode 100644
index 0000000..064bdcd
--- /dev/null
+++ b/symfony/framework-bundle/4.4/config/preload.php
@@ -0,0 +1,9 @@
+<?php
+
+if (file_exists(dirname(__DIR__).'/var/cache/prod/srcApp_KernelProdContainer.preload.php')) {
+    require dirname(__DIR__).'/var/cache/prod/srcApp_KernelProdContainer.preload.php';
+}
+
+if (file_exists(dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php')) {
+    require dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php';
+}
diff --git a/symfony/framework-bundle/4.4/config/routes/dev/framework.php b/symfony/framework-bundle/4.4/config/routes/dev/framework.php
new file mode 100644
index 0000000..1b47b2e
--- /dev/null
+++ b/symfony/framework-bundle/4.4/config/routes/dev/framework.php
@@ -0,0 +1,10 @@
+<?php
+
+declare(strict_types=1);
+
+use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
+
+return static function (RoutingConfigurator $routingConfigurator): void {
+    $routingConfigurator->import('@FrameworkBundle/Resources/config/routing/errors.xml')
+        ->prefix('/_error');
+};
diff --git a/symfony/framework-bundle/4.2/config/services.php b/symfony/framework-bundle/4.4/config/services.php
index 3a9fe9e..067933e 100644
--- a/symfony/framework-bundle/4.2/config/services.php
+++ b/symfony/framework-bundle/4.4/config/services.php
@@ -11,11 +11,13 @@ return static function (ContainerConfigurator $containerConfigurator): void {
         ->autowire()
         ->autoconfigure();
 
-    $services->load('App\\', __DIR__ . '/../src/*')
+    $services->load('App\\', __DIR__ . '/../src/')
         ->exclude([
-        __DIR__ . '/../src/{DependencyInjection,Entity,Kernel.php}',
+        __DIR__ . '/../src/DependencyInjection/',
+        __DIR__ . '/../src/Entity/',
+        __DIR__ . '/../src/Kernel.php',
     ]);
 
-    $services->load('App\Controller\\', __DIR__ . '/../src/Controller')
+    $services->load('App\Controller\\', __DIR__ . '/../src/Controller/')
         ->tag('controller.service_arguments');
 };
diff --git a/symfony/framework-bundle/4.2/public/index.php b/symfony/framework-bundle/4.4/public/index.php
index 929197c..d0b6e02 100644
--- a/symfony/framework-bundle/4.2/public/index.php
+++ b/symfony/framework-bundle/4.4/public/index.php
@@ -1,7 +1,7 @@
 <?php
 
 use App\Kernel;
-use Symfony\Component\Debug\Debug;
+use Symfony\Component\ErrorHandler\Debug;
 use Symfony\Component\HttpFoundation\Request;
 
 require dirname(__DIR__).'/config/bootstrap.php';
4.4 vs 5.1
diff --git a/symfony/framework-bundle/4.4/config/bootstrap.php b/symfony/framework-bundle/4.4/config/bootstrap.php
deleted file mode 100644
index 55560fb..0000000
--- a/symfony/framework-bundle/4.4/config/bootstrap.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-use Symfony\Component\Dotenv\Dotenv;
-
-require dirname(__DIR__).'/vendor/autoload.php';
-
-if (!class_exists(Dotenv::class)) {
-    throw new LogicException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.');
-}
-
-// Load cached env vars if the .env.local.php file exists
-// Run "composer dump-env prod" to create it (requires symfony/flex >=1.2)
-if (is_array($env = @include dirname(__DIR__).'/.env.local.php') && (!isset($env['APP_ENV']) || ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? $env['APP_ENV']) === $env['APP_ENV'])) {
-    (new Dotenv(false))->populate($env);
-} else {
-    // load all the .env files
-    (new Dotenv(false))->loadEnv(dirname(__DIR__).'/.env');
-}
-
-$_SERVER += $_ENV;
-$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: 'dev';
-$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV'];
-$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN) ? '1' : '0';
diff --git a/symfony/framework-bundle/4.4/config/preload.php b/symfony/framework-bundle/5.1/config/preload.php
index 064bdcd..5ebcdb2 100644
--- a/symfony/framework-bundle/4.4/config/preload.php
+++ b/symfony/framework-bundle/5.1/config/preload.php
@@ -1,9 +1,5 @@
 <?php
 
-if (file_exists(dirname(__DIR__).'/var/cache/prod/srcApp_KernelProdContainer.preload.php')) {
-    require dirname(__DIR__).'/var/cache/prod/srcApp_KernelProdContainer.preload.php';
-}
-
 if (file_exists(dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php')) {
     require dirname(__DIR__).'/var/cache/prod/App_KernelProdContainer.preload.php';
 }
diff --git a/symfony/framework-bundle/4.4/public/index.php b/symfony/framework-bundle/5.1/public/index.php
index d0b6e02..097baa3 100644
--- a/symfony/framework-bundle/4.4/public/index.php
+++ b/symfony/framework-bundle/5.1/public/index.php
@@ -1,10 +1,13 @@
 <?php
 
 use App\Kernel;
+use Symfony\Component\Dotenv\Dotenv;
 use Symfony\Component\ErrorHandler\Debug;
 use Symfony\Component\HttpFoundation\Request;
 
-require dirname(__DIR__).'/config/bootstrap.php';
+require dirname(__DIR__).'/vendor/autoload.php';
+
+(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
 
 if ($_SERVER['APP_DEBUG']) {
     umask(0000);
diff --git a/symfony/framework-bundle/4.4/src/Kernel.php b/symfony/framework-bundle/5.1/src/Kernel.php
index 1cd0572..655e796 100644
--- a/symfony/framework-bundle/4.4/src/Kernel.php
+++ b/symfony/framework-bundle/5.1/src/Kernel.php
@@ -3,52 +3,36 @@
 namespace App;
 
 use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
-use Symfony\Component\Config\Loader\LoaderInterface;
-use Symfony\Component\Config\Resource\FileResource;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
+use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
 use Symfony\Component\HttpKernel\Kernel as BaseKernel;
-use Symfony\Component\Routing\RouteCollectionBuilder;
+use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
 
 class Kernel extends BaseKernel
 {
     use MicroKernelTrait;
 
-    private const CONFIG_EXTS = '.{php,xml,yaml,yml}';
-
-    public function registerBundles(): iterable
+    protected function configureContainer(ContainerConfigurator $container): void
     {
-        $contents = require $this->getProjectDir().'/config/bundles.php';
-        foreach ($contents as $class => $envs) {
-            if ($envs[$this->environment] ?? $envs['all'] ?? false) {
-                yield new $class();
-            }
+        $container->import('../config/{packages}/*.yaml');
+        $container->import('../config/{packages}/'.$this->environment.'/*.yaml');
+
+        if (is_file(\dirname(__DIR__).'/config/services.yaml')) {
+            $container->import('../config/services.yaml');
+            $container->import('../config/{services}_'.$this->environment.'.yaml');
+        } elseif (is_file($path = \dirname(__DIR__).'/config/services.php')) {
+            (require $path)($container->withPath($path), $this);
         }
     }
 
-    public function getProjectDir(): string
+    protected function configureRoutes(RoutingConfigurator $routes): void
     {
-        return \dirname(__DIR__);
-    }
+        $routes->import('../config/{routes}/'.$this->environment.'/*.yaml');
+        $routes->import('../config/{routes}/*.yaml');
 
-    protected function configureContainer(ContainerBuilder $container, LoaderInterface $loader): void
-    {
-        $container->addResource(new FileResource($this->getProjectDir().'/config/bundles.php'));
-        $container->setParameter('container.dumper.inline_class_loader', \PHP_VERSION_ID < 70400 || $this->debug);
-        $container->setParameter('container.dumper.inline_factories', true);
-        $confDir = $this->getProjectDir().'/config';
-
-        $loader->load($confDir.'/{packages}/*'.self::CONFIG_EXTS, 'glob');
-        $loader->load($confDir.'/{packages}/'.$this->environment.'/*'.self::CONFIG_EXTS, 'glob');
-        $loader->load($confDir.'/{services}'.self::CONFIG_EXTS, 'glob');
-        $loader->load($confDir.'/{services}_'.$this->environment.self::CONFIG_EXTS, 'glob');
-    }
-
-    protected function configureRoutes(RouteCollectionBuilder $routes): void
-    {
-        $confDir = $this->getProjectDir().'/config';
-
-        $routes->import($confDir.'/{routes}/'.$this->environment.'/*'.self::CONFIG_EXTS, '/', 'glob');
-        $routes->import($confDir.'/{routes}/*'.self::CONFIG_EXTS, '/', 'glob');
-        $routes->import($confDir.'/{routes}'.self::CONFIG_EXTS, '/', 'glob');
+        if (is_file(\dirname(__DIR__).'/config/routes.yaml')) {
+            $routes->import('../config/routes.yaml');
+        } elseif (is_file($path = \dirname(__DIR__).'/config/routes.php')) {
+            (require $path)($routes->withPath($path), $this);
+        }
     }
 }
5.1 vs 5.2
diff --git a/symfony/framework-bundle/5.1/manifest.json b/symfony/framework-bundle/5.2/manifest.json
index 101b2aa..17fa50a 100644
--- a/symfony/framework-bundle/5.1/manifest.json
+++ b/symfony/framework-bundle/5.2/manifest.json
@@ -13,9 +13,7 @@
     },
     "env": {
         "APP_ENV": "dev",
-        "APP_SECRET": "%generate(secret)%",
-        "#TRUSTED_PROXIES": "127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16",
-        "#TRUSTED_HOSTS": "'^(localhost|example\\.com)$'"
+        "APP_SECRET": "%generate(secret)%"
     },
     "gitignore": [
         "/.env.local",
diff --git a/symfony/framework-bundle/5.1/public/index.php b/symfony/framework-bundle/5.2/public/index.php
index 097baa3..3bcee0b 100644
--- a/symfony/framework-bundle/5.1/public/index.php
+++ b/symfony/framework-bundle/5.2/public/index.php
@@ -15,14 +15,6 @@ if ($_SERVER['APP_DEBUG']) {
     Debug::enable();
 }
 
-if ($trustedProxies = $_SERVER['TRUSTED_PROXIES'] ?? false) {
-    Request::setTrustedProxies(explode(',', $trustedProxies), Request::HEADER_X_FORWARDED_FOR | Request::HEADER_X_FORWARDED_PORT | Request::HEADER_X_FORWARDED_PROTO);
-}
-
-if ($trustedHosts = $_SERVER['TRUSTED_HOSTS'] ?? false) {
-    Request::setTrustedHosts([$trustedHosts]);
-}
-
 $kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
 $request = Request::createFromGlobals();
 $response = $kernel->handle($request);
5.2 vs 5.3
diff --git a/symfony/framework-bundle/5.2/config/packages/framework.php b/symfony/framework-bundle/5.3/config/packages/framework.php
index 1144bb7..47144ff 100644
--- a/symfony/framework-bundle/5.2/config/packages/framework.php
+++ b/symfony/framework-bundle/5.3/config/packages/framework.php
@@ -7,13 +7,23 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura
 return static function (ContainerConfigurator $containerConfigurator): void {
     $containerConfigurator->extension('framework', [
         'secret' => '%env(APP_SECRET)%',
+        'http_method_override' => false,
         'session' => [
             'handler_id' => null,
             'cookie_secure' => 'auto',
             'cookie_samesite' => 'lax',
+            'storage_factory_id' => 'session.storage.factory.native',
         ],
         'php_errors' => [
             'log' => true,
         ],
     ]);
+    if ($containerConfigurator->env() === 'test') {
+        $containerConfigurator->extension('framework', [
+            'test' => true,
+            'session' => [
+                'storage_factory_id' => 'session.storage.factory.mock_file',
+            ],
+        ]);
+    }
 };
diff --git a/symfony/framework-bundle/5.2/config/packages/test/framework.php b/symfony/framework-bundle/5.2/config/packages/test/framework.php
deleted file mode 100644
index 38e7b54..0000000
--- a/symfony/framework-bundle/5.2/config/packages/test/framework.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->extension('framework', [
-        'test' => true,
-        'session' => [
-            'storage_id' => 'session.storage.mock_file',
-        ],
-    ]);
-};
diff --git a/symfony/framework-bundle/5.2/config/routes/dev/framework.php b/symfony/framework-bundle/5.3/config/routes/framework.php
similarity index 58%
rename from symfony/framework-bundle/5.2/config/routes/dev/framework.php
rename to symfony/framework-bundle/5.3/config/routes/framework.php
index 1b47b2e..27020e0 100644
--- a/symfony/framework-bundle/5.2/config/routes/dev/framework.php
+++ b/symfony/framework-bundle/5.3/config/routes/framework.php
@@ -5,6 +5,8 @@ declare(strict_types=1);
 use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
 
 return static function (RoutingConfigurator $routingConfigurator): void {
-    $routingConfigurator->import('@FrameworkBundle/Resources/config/routing/errors.xml')
+    if ($routingConfigurator->env() === 'dev') {
+        $routingConfigurator->import('@FrameworkBundle/Resources/config/routing/errors.xml')
         ->prefix('/_error');
+    }
 };
diff --git a/symfony/framework-bundle/5.2/config/services.php b/symfony/framework-bundle/5.3/config/services.php
index 067933e..f315a50 100644
--- a/symfony/framework-bundle/5.2/config/services.php
+++ b/symfony/framework-bundle/5.3/config/services.php
@@ -17,7 +17,4 @@ return static function (ContainerConfigurator $containerConfigurator): void {
         __DIR__ . '/../src/Entity/',
         __DIR__ . '/../src/Kernel.php',
     ]);
-
-    $services->load('App\Controller\\', __DIR__ . '/../src/Controller/')
-        ->tag('controller.service_arguments');
 };
diff --git a/symfony/framework-bundle/5.2/public/index.php b/symfony/framework-bundle/5.3/public/index.php
index 3bcee0b..9982c21 100644
--- a/symfony/framework-bundle/5.2/public/index.php
+++ b/symfony/framework-bundle/5.3/public/index.php
@@ -1,22 +1,9 @@
 <?php
 
 use App\Kernel;
-use Symfony\Component\Dotenv\Dotenv;
-use Symfony\Component\ErrorHandler\Debug;
-use Symfony\Component\HttpFoundation\Request;
 
-require dirname(__DIR__).'/vendor/autoload.php';
+require_once dirname(__DIR__).'/vendor/autoload_runtime.php';
 
-(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
-
-if ($_SERVER['APP_DEBUG']) {
-    umask(0000);
-
-    Debug::enable();
-}
-
-$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
-$request = Request::createFromGlobals();
-$response = $kernel->handle($request);
-$response->send();
-$kernel->terminate($request, $response);
+return function (array $context) {
+    return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);
+};
diff --git a/symfony/framework-bundle/5.2/src/Kernel.php b/symfony/framework-bundle/5.3/src/Kernel.php
index 655e796..8e96873 100644
--- a/symfony/framework-bundle/5.2/src/Kernel.php
+++ b/symfony/framework-bundle/5.3/src/Kernel.php
@@ -19,8 +19,8 @@ class Kernel extends BaseKernel
         if (is_file(\dirname(__DIR__).'/config/services.yaml')) {
             $container->import('../config/services.yaml');
             $container->import('../config/{services}_'.$this->environment.'.yaml');
-        } elseif (is_file($path = \dirname(__DIR__).'/config/services.php')) {
-            (require $path)($container->withPath($path), $this);
+        } else {
+            $container->import('../config/{services}.php');
         }
     }
 
@@ -31,8 +31,8 @@ class Kernel extends BaseKernel
 
         if (is_file(\dirname(__DIR__).'/config/routes.yaml')) {
             $routes->import('../config/routes.yaml');
-        } elseif (is_file($path = \dirname(__DIR__).'/config/routes.php')) {
-            (require $path)($routes->withPath($path), $this);
+        } else {
+            $routes->import('../config/{routes}.php');
         }
     }
 }
5.3 vs 5.4
diff --git a/symfony/framework-bundle/5.3/src/Kernel.php b/symfony/framework-bundle/5.4/src/Kernel.php
index 8e96873..779cd1f 100644
--- a/symfony/framework-bundle/5.3/src/Kernel.php
+++ b/symfony/framework-bundle/5.4/src/Kernel.php
@@ -3,36 +3,9 @@
 namespace App;
 
 use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
 use Symfony\Component\HttpKernel\Kernel as BaseKernel;
-use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
 
 class Kernel extends BaseKernel
 {
     use MicroKernelTrait;
-
-    protected function configureContainer(ContainerConfigurator $container): void
-    {
-        $container->import('../config/{packages}/*.yaml');
-        $container->import('../config/{packages}/'.$this->environment.'/*.yaml');
-
-        if (is_file(\dirname(__DIR__).'/config/services.yaml')) {
-            $container->import('../config/services.yaml');
-            $container->import('../config/{services}_'.$this->environment.'.yaml');
-        } else {
-            $container->import('../config/{services}.php');
-        }
-    }
-
-    protected function configureRoutes(RoutingConfigurator $routes): void
-    {
-        $routes->import('../config/{routes}/'.$this->environment.'/*.yaml');
-        $routes->import('../config/{routes}/*.yaml');
-
-        if (is_file(\dirname(__DIR__).'/config/routes.yaml')) {
-            $routes->import('../config/routes.yaml');
-        } else {
-            $routes->import('../config/{routes}.php');
-        }
-    }
 }
5.4 vs 6.2
diff --git a/symfony/framework-bundle/5.4/config/packages/framework.php b/symfony/framework-bundle/6.2/config/packages/framework.php
index 47144ff..6b582de 100644
--- a/symfony/framework-bundle/5.4/config/packages/framework.php
+++ b/symfony/framework-bundle/6.2/config/packages/framework.php
@@ -8,6 +8,7 @@ return static function (ContainerConfigurator $containerConfigurator): void {
     $containerConfigurator->extension('framework', [
         'secret' => '%env(APP_SECRET)%',
         'http_method_override' => false,
+        'handle_all_throwables' => true,
         'session' => [
             'handler_id' => null,
             'cookie_secure' => 'auto',
6.2 vs 6.4
diff --git a/symfony/framework-bundle/6.2/config/packages/framework.php b/symfony/framework-bundle/6.4/config/packages/framework.php
index 6b582de..537b566 100644
--- a/symfony/framework-bundle/6.2/config/packages/framework.php
+++ b/symfony/framework-bundle/6.4/config/packages/framework.php
@@ -7,13 +7,13 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura
 return static function (ContainerConfigurator $containerConfigurator): void {
     $containerConfigurator->extension('framework', [
         'secret' => '%env(APP_SECRET)%',
+        'annotations' => false,
         'http_method_override' => false,
         'handle_all_throwables' => true,
         'session' => [
             'handler_id' => null,
             'cookie_secure' => 'auto',
             'cookie_samesite' => 'lax',
-            'storage_factory_id' => 'session.storage.factory.native',
         ],
         'php_errors' => [
             'log' => true,
6.4 vs 7.0
diff --git a/symfony/framework-bundle/6.4/config/packages/framework.php b/symfony/framework-bundle/7.0/config/packages/framework.php
index 537b566..d0a14a5 100644
--- a/symfony/framework-bundle/6.4/config/packages/framework.php
+++ b/symfony/framework-bundle/7.0/config/packages/framework.php
@@ -7,8 +7,6 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura
 return static function (ContainerConfigurator $containerConfigurator): void {
     $containerConfigurator->extension('framework', [
         'secret' => '%env(APP_SECRET)%',
-        'annotations' => false,
-        'http_method_override' => false,
         'handle_all_throwables' => true,
         'session' => [
             'handler_id' => null,

symfony/monolog-bundle

3.1 vs 3.3
diff --git a/symfony/monolog-bundle/3.1/config/packages/prod/monolog.php b/symfony/monolog-bundle/3.3/config/packages/prod/monolog.php
index d67bc3c..4ff2ac5 100644
--- a/symfony/monolog-bundle/3.1/config/packages/prod/monolog.php
+++ b/symfony/monolog-bundle/3.3/config/packages/prod/monolog.php
@@ -11,10 +11,11 @@ return static function (ContainerConfigurator $containerConfigurator): void {
                 'type' => 'fingers_crossed',
                 'action_level' => 'error',
                 'handler' => 'nested',
-                'buffer_size' => 50,
-                'excluded_404s' => [
-                    '^/',
+                'excluded_http_codes' => [
+                    404,
+                    405,
                 ],
+                'buffer_size' => 50,
             ],
             'nested' => [
                 'type' => 'stream',
diff --git a/symfony/monolog-bundle/3.1/config/packages/test/monolog.php b/symfony/monolog-bundle/3.3/config/packages/test/monolog.php
index 0aaa988..32ecca8 100644
--- a/symfony/monolog-bundle/3.1/config/packages/test/monolog.php
+++ b/symfony/monolog-bundle/3.3/config/packages/test/monolog.php
@@ -8,13 +8,22 @@ return static function (ContainerConfigurator $containerConfigurator): void {
     $containerConfigurator->extension('monolog', [
         'handlers' => [
             'main' => [
-                'type' => 'stream',
-                'path' => '%kernel.logs_dir%/%kernel.environment%.log',
-                'level' => 'debug',
+                'type' => 'fingers_crossed',
+                'action_level' => 'error',
+                'handler' => 'nested',
+                'excluded_http_codes' => [
+                    404,
+                    405,
+                ],
                 'channels' => [
                     '!event',
                 ],
             ],
+            'nested' => [
+                'type' => 'stream',
+                'path' => '%kernel.logs_dir%/%kernel.environment%.log',
+                'level' => 'debug',
+            ],
         ],
     ]);
 };
3.3 vs 3.7
diff --git a/symfony/monolog-bundle/3.3/config/packages/dev/monolog.php b/symfony/monolog-bundle/3.3/config/packages/dev/monolog.php
deleted file mode 100644
index c4d29d6..0000000
--- a/symfony/monolog-bundle/3.3/config/packages/dev/monolog.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->extension('monolog', [
-        'handlers' => [
-            'main' => [
-                'type' => 'stream',
-                'path' => '%kernel.logs_dir%/%kernel.environment%.log',
-                'level' => 'debug',
-                'channels' => [
-                    '!event',
-                ],
-            ],
-            'console' => [
-                'type' => 'console',
-                'process_psr_3_messages' => false,
-                'channels' => [
-                    '!event',
-                    '!doctrine',
-                    '!console',
-                ],
-            ],
-        ],
-    ]);
-};
diff --git a/symfony/monolog-bundle/3.7/config/packages/monolog.php b/symfony/monolog-bundle/3.7/config/packages/monolog.php
new file mode 100644
index 0000000..38692a2
--- /dev/null
+++ b/symfony/monolog-bundle/3.7/config/packages/monolog.php
@@ -0,0 +1,96 @@
+<?php
+
+declare(strict_types=1);
+
+use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
+
+return static function (ContainerConfigurator $containerConfigurator): void {
+    $containerConfigurator->extension('monolog', [
+        'channels' => [
+            'deprecation',
+        ],
+    ]);
+    if ($containerConfigurator->env() === 'dev') {
+        $containerConfigurator->extension('monolog', [
+            'handlers' => [
+                'main' => [
+                    'type' => 'stream',
+                    'path' => '%kernel.logs_dir%/%kernel.environment%.log',
+                    'level' => 'debug',
+                    'channels' => [
+                        '!event',
+                    ],
+                ],
+                'console' => [
+                    'type' => 'console',
+                    'process_psr_3_messages' => false,
+                    'channels' => [
+                        '!event',
+                        '!doctrine',
+                        '!console',
+                    ],
+                ],
+            ],
+        ]);
+    }
+    if ($containerConfigurator->env() === 'test') {
+        $containerConfigurator->extension('monolog', [
+            'handlers' => [
+                'main' => [
+                    'type' => 'fingers_crossed',
+                    'action_level' => 'error',
+                    'handler' => 'nested',
+                    'excluded_http_codes' => [
+                        404,
+                        405,
+                    ],
+                    'channels' => [
+                        '!event',
+                    ],
+                ],
+                'nested' => [
+                    'type' => 'stream',
+                    'path' => '%kernel.logs_dir%/%kernel.environment%.log',
+                    'level' => 'debug',
+                ],
+            ],
+        ]);
+    }
+    if ($containerConfigurator->env() === 'prod') {
+        $containerConfigurator->extension('monolog', [
+            'handlers' => [
+                'main' => [
+                    'type' => 'fingers_crossed',
+                    'action_level' => 'error',
+                    'handler' => 'nested',
+                    'excluded_http_codes' => [
+                        404,
+                        405,
+                    ],
+                    'buffer_size' => 50,
+                ],
+                'nested' => [
+                    'type' => 'stream',
+                    'path' => 'php://stderr',
+                    'level' => 'debug',
+                    'formatter' => 'monolog.formatter.json',
+                ],
+                'console' => [
+                    'type' => 'console',
+                    'process_psr_3_messages' => false,
+                    'channels' => [
+                        '!event',
+                        '!doctrine',
+                    ],
+                ],
+                'deprecation' => [
+                    'type' => 'stream',
+                    'channels' => [
+                        'deprecation',
+                    ],
+                    'path' => 'php://stderr',
+                ],
+            ],
+        ]);
+    }
+};
diff --git a/symfony/monolog-bundle/3.3/config/packages/prod/deprecations.php b/symfony/monolog-bundle/3.3/config/packages/prod/deprecations.php
deleted file mode 100644
index e69de29..0000000
diff --git a/symfony/monolog-bundle/3.3/config/packages/prod/monolog.php b/symfony/monolog-bundle/3.3/config/packages/prod/monolog.php
deleted file mode 100644
index 4ff2ac5..0000000
--- a/symfony/monolog-bundle/3.3/config/packages/prod/monolog.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->extension('monolog', [
-        'handlers' => [
-            'main' => [
-                'type' => 'fingers_crossed',
-                'action_level' => 'error',
-                'handler' => 'nested',
-                'excluded_http_codes' => [
-                    404,
-                    405,
-                ],
-                'buffer_size' => 50,
-            ],
-            'nested' => [
-                'type' => 'stream',
-                'path' => '%kernel.logs_dir%/%kernel.environment%.log',
-                'level' => 'debug',
-            ],
-            'console' => [
-                'type' => 'console',
-                'process_psr_3_messages' => false,
-                'channels' => [
-                    '!event',
-                    '!doctrine',
-                ],
-            ],
-        ],
-    ]);
-};
diff --git a/symfony/monolog-bundle/3.3/config/packages/test/monolog.php b/symfony/monolog-bundle/3.3/config/packages/test/monolog.php
deleted file mode 100644
index 32ecca8..0000000
--- a/symfony/monolog-bundle/3.3/config/packages/test/monolog.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->extension('monolog', [
-        'handlers' => [
-            'main' => [
-                'type' => 'fingers_crossed',
-                'action_level' => 'error',
-                'handler' => 'nested',
-                'excluded_http_codes' => [
-                    404,
-                    405,
-                ],
-                'channels' => [
-                    '!event',
-                ],
-            ],
-            'nested' => [
-                'type' => 'stream',
-                'path' => '%kernel.logs_dir%/%kernel.environment%.log',
-                'level' => 'debug',
-            ],
-        ],
-    ]);
-};
diff --git a/symfony/monolog-bundle/3.3/manifest.json b/symfony/monolog-bundle/3.7/manifest.json
index 1dc6c69..ed73c59 100644
--- a/symfony/monolog-bundle/3.3/manifest.json
+++ b/symfony/monolog-bundle/3.7/manifest.json
@@ -5,5 +5,8 @@
     "copy-from-recipe": {
         "config/": "%CONFIG_DIR%/"
     },
-    "aliases": ["log", "logger", "logging", "logs", "monolog"]
+    "aliases": ["log", "logger", "logging", "logs", "monolog"],
+    "conflict": {
+        "symfony/framework-bundle": "<5.3"
+    }
 }

symfony/translation

3.3 vs 5.3
5.3 vs 6.3

symfony/web-profiler-bundle

3.3 vs 5.3
diff --git a/symfony/web-profiler-bundle/3.3/config/packages/dev/web_profiler.php b/symfony/web-profiler-bundle/3.3/config/packages/dev/web_profiler.php
deleted file mode 100644
index dea1d50..0000000
--- a/symfony/web-profiler-bundle/3.3/config/packages/dev/web_profiler.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->extension('web_profiler', [
-        'toolbar' => true,
-        'intercept_redirects' => false,
-    ]);
-
-    $containerConfigurator->extension('framework', [
-        'profiler' => [
-            'only_exceptions' => false,
-        ],
-    ]);
-};
diff --git a/symfony/web-profiler-bundle/3.3/config/packages/test/web_profiler.php b/symfony/web-profiler-bundle/3.3/config/packages/test/web_profiler.php
deleted file mode 100644
index c197020..0000000
--- a/symfony/web-profiler-bundle/3.3/config/packages/test/web_profiler.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->extension('web_profiler', [
-        'toolbar' => false,
-        'intercept_redirects' => false,
-    ]);
-
-    $containerConfigurator->extension('framework', [
-        'profiler' => [
-            'collect' => false,
-        ],
-    ]);
-};
diff --git a/symfony/web-profiler-bundle/5.3/config/packages/web_profiler.php b/symfony/web-profiler-bundle/5.3/config/packages/web_profiler.php
new file mode 100644
index 0000000..4172ffd
--- /dev/null
+++ b/symfony/web-profiler-bundle/5.3/config/packages/web_profiler.php
@@ -0,0 +1,30 @@
+<?php
+
+declare(strict_types=1);
+
+use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
+
+return static function (ContainerConfigurator $containerConfigurator): void {
+    if ($containerConfigurator->env() === 'dev') {
+        $containerConfigurator->extension('web_profiler', [
+            'toolbar' => true,
+            'intercept_redirects' => false,
+        ]);
+        $containerConfigurator->extension('framework', [
+            'profiler' => [
+                'only_exceptions' => false,
+            ],
+        ]);
+    }
+    if ($containerConfigurator->env() === 'test') {
+        $containerConfigurator->extension('web_profiler', [
+            'toolbar' => false,
+            'intercept_redirects' => false,
+        ]);
+        $containerConfigurator->extension('framework', [
+            'profiler' => [
+                'collect' => false,
+            ],
+        ]);
+    }
+};
diff --git a/symfony/web-profiler-bundle/3.3/config/routes/dev/web_profiler.php b/symfony/web-profiler-bundle/3.3/config/routes/dev/web_profiler.php
deleted file mode 100644
index 0ee088d..0000000
--- a/symfony/web-profiler-bundle/3.3/config/routes/dev/web_profiler.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
-
-return static function (RoutingConfigurator $routingConfigurator): void {
-    $routingConfigurator->import('@WebProfilerBundle/Resources/config/routing/wdt.xml')
-        ->prefix('/_wdt');
-
-    $routingConfigurator->import('@WebProfilerBundle/Resources/config/routing/profiler.xml')
-        ->prefix('/_profiler');
-};
diff --git a/symfony/web-profiler-bundle/5.3/config/routes/web_profiler.php b/symfony/web-profiler-bundle/5.3/config/routes/web_profiler.php
new file mode 100644
index 0000000..f74f910
--- /dev/null
+++ b/symfony/web-profiler-bundle/5.3/config/routes/web_profiler.php
@@ -0,0 +1,14 @@
+<?php
+
+declare(strict_types=1);
+
+use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
+
+return static function (RoutingConfigurator $routingConfigurator): void {
+    if ($routingConfigurator->env() === 'dev') {
+        $routingConfigurator->import('@WebProfilerBundle/Resources/config/routing/wdt.xml')
+        ->prefix('/_wdt');
+        $routingConfigurator->import('@WebProfilerBundle/Resources/config/routing/profiler.xml')
+        ->prefix('/_profiler');
+    }
+};
diff --git a/symfony/web-profiler-bundle/3.3/manifest.json b/symfony/web-profiler-bundle/5.3/manifest.json
index cb84a24..be74128 100644
--- a/symfony/web-profiler-bundle/3.3/manifest.json
+++ b/symfony/web-profiler-bundle/5.3/manifest.json
@@ -4,5 +4,8 @@
     },
     "copy-from-recipe": {
         "config/": "%CONFIG_DIR%/"
+    },
+    "conflict": {
+        "symfony/framework-bundle": "<5.3"
     }
 }
5.3 vs 6.1
diff --git a/symfony/web-profiler-bundle/5.3/config/packages/web_profiler.php b/symfony/web-profiler-bundle/6.1/config/packages/web_profiler.php
index 4172ffd..3eecf1f 100644
--- a/symfony/web-profiler-bundle/5.3/config/packages/web_profiler.php
+++ b/symfony/web-profiler-bundle/6.1/config/packages/web_profiler.php
@@ -13,6 +13,7 @@ return static function (ContainerConfigurator $containerConfigurator): void {
         $containerConfigurator->extension('framework', [
             'profiler' => [
                 'only_exceptions' => false,
+                'collect_serializer_data' => true,
             ],
         ]);
     }
diff --git a/symfony/web-profiler-bundle/5.3/manifest.json b/symfony/web-profiler-bundle/6.1/manifest.json
index be74128..fceb97f 100644
--- a/symfony/web-profiler-bundle/5.3/manifest.json
+++ b/symfony/web-profiler-bundle/6.1/manifest.json
@@ -6,6 +6,6 @@
         "config/": "%CONFIG_DIR%/"
     },
     "conflict": {
-        "symfony/framework-bundle": "<5.3"
+        "symfony/framework-bundle": "<6.1"
     }
 }

zenstruck/foundry

1.9 vs 1.10
diff --git a/zenstruck/foundry/1.9/config/packages/dev/zenstruck_foundry.php b/zenstruck/foundry/1.9/config/packages/dev/zenstruck_foundry.php
deleted file mode 100644
index a17b790..0000000
--- a/zenstruck/foundry/1.9/config/packages/dev/zenstruck_foundry.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->extension('zenstruck_foundry', [
-        'auto_refresh_proxies' => true,
-    ]);
-};
diff --git a/zenstruck/foundry/1.9/config/packages/test/zenstruck_foundry.php b/zenstruck/foundry/1.9/config/packages/test/zenstruck_foundry.php
deleted file mode 100644
index caacd15..0000000
--- a/zenstruck/foundry/1.9/config/packages/test/zenstruck_foundry.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-declare(strict_types=1);
-
-use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
-
-return static function (ContainerConfigurator $containerConfigurator): void {
-    $containerConfigurator->import(__DIR__ . '/../dev/zenstruck_foundry.php');
-};
diff --git a/zenstruck/foundry/1.10/config/packages/zenstruck_foundry.php b/zenstruck/foundry/1.10/config/packages/zenstruck_foundry.php
new file mode 100644
index 0000000..c0c2fcd
--- /dev/null
+++ b/zenstruck/foundry/1.10/config/packages/zenstruck_foundry.php
@@ -0,0 +1,18 @@
+<?php
+
+declare(strict_types=1);
+
+use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
+
+return static function (ContainerConfigurator $containerConfigurator): void {
+    if ($containerConfigurator->env() === 'dev') {
+        $containerConfigurator->extension('zenstruck_foundry', [
+            'auto_refresh_proxies' => true,
+        ]);
+    }
+    if ($containerConfigurator->env() === 'test') {
+        $containerConfigurator->extension('zenstruck_foundry', [
+            'auto_refresh_proxies' => true,
+        ]);
+    }
+};
diff --git a/zenstruck/foundry/1.9/manifest.json b/zenstruck/foundry/1.10/manifest.json
index 9fe1ceb..050fabb 100644
--- a/zenstruck/foundry/1.9/manifest.json
+++ b/zenstruck/foundry/1.10/manifest.json
@@ -4,5 +4,9 @@
     },
     "bundles": {
         "Zenstruck\\Foundry\\ZenstruckFoundryBundle": ["dev", "test"]
-    }
+    },
+    "conflict": {
+        "symfony/framework-bundle": "<5.3"
+    },
+    "aliases": ["foundry"]
 }

Copy link
Member Author

@alexander-schranz alexander-schranz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to check the ECS config currently it is little bit unexpected result

Comment on lines 10 to +12
->defaults([
'template' => 'admin.html.twig',
]);
'template' => 'admin.html.twig',
]);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks unexpected code style change.

Comment on lines 9 to +10
$routingConfigurator->import('@WebProfilerBundle/Resources/config/routing/wdt.xml')
->prefix('/_wdt');
->prefix('/_wdt');
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unexpected code style change

Comment on lines +12 to +14
'fallbacks' => [
'en',
],
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unexpected code style change

@@ -5,5 +5,5 @@
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

return static function (ContainerConfigurator $containerConfigurator): void {
$containerConfigurator->import(__DIR__.'/../dev/zenstruck_foundry.php');
$containerConfigurator->import(__DIR__ . '/../dev/zenstruck_foundry.php');
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unexpected code style change as symfony forces __DIR__.'/../ as I know

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant