schranz-php-recipes / symfony-recipes-php

Provides https://github.com/symfony/recipes as PHP instead of YAML configs.
MIT License
13 stars 3 forks source link

Add command to convert yaml to php config files #1

Closed alexander-schranz closed 2 years ago

alexander-schranz commented 2 years ago

Contrib Recipes Pull Request: https://github.com/alexander-schranz/symfony-recipes-php-contrib/pull/2

Q A
License MIT
Doc issue/PR symfony/symfony-docs#...

First run to update yaml to php files.

This pull request added a script to convert yaml to php:

vendor/bin/yaml-to-php git@github.com:symfony/recipes.git

ConfigTransformer Issues:

ConfigTransformer Features for completness

Testing

Following config can be used to test out the recipes:

    "extra": {
        "symfony": {
            "allow-contrib": false,
            "require": "6.1.*",
            "endpoint": [
                "https://raw.githubusercontent.com/alexander-schranz/symfony-recipes-php/flex/main/index.json",
                "https://raw.githubusercontent.com/alexander-schranz/symfony-recipes-php-contrib/flex/main/index.json",
                "flex://defaults"
            ]
        }
    }
github-actions[bot] commented 2 years ago

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/alexander-schranz/symfony-recipes-php/flex/pull-1/index.json
    # On Windows
    SET SYMFONY_ENDPOINT=https://raw.githubusercontent.com/alexander-schranz/symfony-recipes-php/flex/pull-1/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/api-pack:^1.0' 'api-platform/core:^2.5' 'blackfireio/blackfire-symfony-meta:^1.0' 'doctrine/annotations:^1.10' 'doctrine/doctrine-bundle:^2.4' 'doctrine/doctrine-fixtures-bundle:^3.0' 'doctrine/doctrine-migrations-bundle:^3.1' 'easycorp/easyadmin-bundle:^3.0' 'friendsofphp/php-cs-fixer:^3.0' 'hautelook/alice-bundle:^2.2' 'javiereguiluz/easyadmin-bundle:^1.17' 'league/flysystem-bundle:^1.0' 'lexik/jwt-authentication-bundle:^2.5' 'nelmio/alice:^3.3' 'nelmio/cors-bundle:^1.5' 'nelmio/security-bundle:^2.4' 'nyholm/psr7:^1.0' 'phpunit/phpunit:^9.3' 'scheb/2fa-bundle:^6.0' 'sensio/framework-extra-bundle:^5.2' 'sensiolabs/ansi-to-html:^1.2' 'sensiolabs/security-checker:^4.0' 'symfony/all-my-sms-notifier:^5.3' 'symfony/allmysms-notifier:^5.3' 'symfony/amazon-mailer:^4.4' 'symfony/amazon-sns-notifier:^5.4' 'symfony/amqp-pack:^1.0' 'symfony/clickatell-notifier:^5.3' 'symfony/console:^5.3' 'symfony/crowdin-translation-provider:^5.3' 'symfony/debug-bundle:^5.3' 'symfony/debug-pack:^1.0' 'symfony/discord-notifier:^5.2' 'symfony/engagespot-notifier:^6.1' 'symfony/esendex-notifier:^5.2' 'symfony/expo-notifier:^5.4' 'symfony/fake-chat-notifier:^5.3' 'symfony/fake-sms-notifier:^5.3' 'symfony/firebase-notifier:^5.1' 'symfony/flex:^1.0' 'symfony/forty-six-elks-notifier:^6.1' 'symfony/framework-bundle:^6.2' 'symfony/free-mobile-notifier:^5.1' 'symfony/gateway-api-notifier:^5.3' 'symfony/gatewayapi-notifier:^5.3' 'symfony/gitter-notifier:^5.3' 'symfony/google-chat-notifier:^5.3' 'symfony/google-mailer:^4.4' 'symfony/infobip-mailer:^6.2' 'symfony/infobip-notifier:^5.2' 'symfony/iqsms-notifier:^5.3' 'symfony/kaz-info-teh-notifier:^6.1' 'symfony/light-sms-notifier:^5.3' 'symfony/linked-in-notifier:^5.2' 'symfony/lock:^5.2' 'symfony/loco-translation-provider:^5.3' 'symfony/lokalise-translation-provider:^5.3' 'symfony/mail-pace-mailer:^6.2' 'symfony/mailchimp-mailer:^4.4' 'symfony/mailer:^4.3' 'symfony/mailgun-mailer:^4.4' 'symfony/mailjet-mailer:^5.2' 'symfony/mailjet-notifier:^5.4' 'symfony/maker-bundle:^1.0' 'symfony/mattermost-notifier:^5.1' 'symfony/mercure-bundle:^0.3' 'symfony/mercure-notifier:^5.3' 'symfony/message-bird-notifier:^5.3' 'symfony/message-media-notifier:^5.4' 'symfony/messenger:^6.0' 'symfony/microsoft-teams-notifier:^5.3' 'symfony/mobyt-notifier:^5.2' 'symfony/monolog-bundle:^3.7' 'symfony/nexmo-notifier:^5.0' 'symfony/notifier:^5.0' 'symfony/octopush-notifier:^5.3' 'symfony/one-signal-notifier:^5.4' 'symfony/orange-sms-notifier:^6.1' 'symfony/orm-pack:^1.0' 'symfony/ovh-cloud-notifier:^5.1' 'symfony/panther:^1.0' 'symfony/phpunit-bridge:^5.3' 'symfony/postmark-mailer:^4.4' 'symfony/profiler-pack:^1.0' 'symfony/psr7-pack:^1.0' 'symfony/requirements-checker:^2.0' 'symfony/rocket-chat-notifier:^5.1' 'symfony/routing:^6.1' 'symfony/security-bundle:^6.0' 'symfony/sendberry-notifier:^6.1' 'symfony/sendgrid-mailer:^4.4' 'symfony/sendinblue-mailer:^5.2' 'symfony/sendinblue-notifier:^5.2' 'symfony/serializer-pack:^1.0' 'symfony/sinch-notifier:^5.1' 'symfony/slack-notifier:^5.2' 'symfony/sms-biuras-notifier:^5.3' 'symfony/sms-factor-notifier:^6.2' 'symfony/sms77-notifier:^5.4' 'symfony/smsapi-notifier:^5.2' 'symfony/smsc-notifier:^5.4' 'symfony/spot-hit-notifier:^5.3' 'symfony/swiftmailer-bundle:^2.5' 'symfony/telegram-notifier:^5.0' 'symfony/telnyx-notifier:^5.4' 'symfony/test-pack:^1.0' 'symfony/translation:^5.3' 'symfony/turbo-sms-notifier:^5.4' 'symfony/twig-bundle:^5.4' 'symfony/twig-pack:^1.0' 'symfony/twilio-notifier:^5.0' 'symfony/ux-autocomplete:^2.2' 'symfony/ux-live-component:^2.0' 'symfony/validator:^5.3' 'symfony/var-dumper:^3.3' 'symfony/vonage-notifier:^5.4' 'symfony/web-profiler-bundle:^6.1' 'symfony/web-server-bundle:^3.3' 'symfony/webapp-pack:^1.0' 'symfony/webpack-encore-bundle:^1.10' 'symfony/workflow:^3.3' 'symfony/yunpian-notifier:^5.4' 'symfony/zendesk-notifier:^6.2' 'symfony/zulip-notifier:^5.2' 'symfonycasts/reset-password-bundle:^1.0' 'symfonycorp/platformsh-pack:^1.0' 'theofidry/alice-data-fixtures:^1.0' 'twig/cssinliner-extension:^1.0' 'twig/extensions:^1.0' 'twig/inky-extension:^1.0' 'twig/markdown-extension:^1.0' 'willdurand/js-translation-bundle:^2.0' '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 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 2765011..ebc7fc1 100644 --- a/api-platform/core/2.1/config/packages/api_platform.php +++ b/api-platform/core/2.5/config/packages/api_platform.php @@ -9,5 +9,11 @@ return static function (ContainerConfigurator $containerConfigurator): void { 'mapping' => [ 'paths' => ['%kernel.project_dir%/src/Entity'], ], + 'patch_formats' => [ + 'json' => ['application/merge-patch+json'], + ], + 'swagger' => [ + 'versions' => [3], + ], ]); }; ```

doctrine/annotations

1.0 vs 1.10 ```diff diff --git a/doctrine/annotations/1.0/config/routes/annotations.php b/doctrine/annotations/1.0/config/routes/annotations.php deleted file mode 100644 index dd3c0f1..0000000 --- a/doctrine/annotations/1.0/config/routes/annotations.php +++ /dev/null @@ -1,11 +0,0 @@ -import('../../src/Controller/', 'annotation'); - - $routingConfigurator->import('../../src/Kernel.php', 'annotation'); -}; diff --git a/doctrine/annotations/1.0/manifest.json b/doctrine/annotations/1.10/manifest.json index e164c6e..d5e3ab8 100644 --- a/doctrine/annotations/1.0/manifest.json +++ b/doctrine/annotations/1.10/manifest.json @@ -1,5 +1,5 @@ { - "copy-from-recipe": { - "config/": "%CONFIG_DIR%/" + "conflict": { + "symfony/routing": "<6.0" } } ```

doctrine/doctrine-bundle

1.6 vs 1.12 ```diff 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 a6dfabd..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,37 +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 9c63d33..8e74958 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=14&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=14&charset=utf8" }, "dockerfile": [ "RUN apk add --no-cache --virtual .pgsql-deps postgresql-dev && \\", ```
1.12 vs 2.0 ```diff 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 8e74958..9c63d33 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=14&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=14&charset=utf8" }, "dockerfile": [ "RUN apk add --no-cache --virtual .pgsql-deps postgresql-dev && \\", diff --git a/doctrine/doctrine-bundle/1.12/post-install.txt b/doctrine/doctrine-bundle/2.0/post-install.txt index 99a8825..0e3d418 100644 --- a/doctrine/doctrine-bundle/1.12/post-install.txt +++ b/doctrine/doctrine-bundle/2.0/post-install.txt @@ -1,4 +1,4 @@ * Modify your DATABASE_URL config in .env - * Configure the driver (mysql) and - server_version (5.7) in config/packages/doctrine.yaml + * Configure the driver (postgresql) and + server_version (13) in config/packages/doctrine.yaml ```
2.0 vs 2.3 ```diff 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 @@ +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 9c63d33..625230f 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=14&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 diff --git a/doctrine/doctrine-bundle/2.3/config/packages/doctrine.php b/doctrine/doctrine-bundle/2.4/config/packages/doctrine.php index e210ec1..dcd8d19 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,38 @@ 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, + '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 @@ -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 @@ -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 625230f..49b4292 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" } } ```

doctrine/doctrine-migrations-bundle

1.2 vs 2.2 ```diff diff --git a/doctrine/doctrine-migrations-bundle/1.2/config/packages/doctrine_migrations.php b/doctrine/doctrine-migrations-bundle/2.2/config/packages/doctrine_migrations.php index c63be00..f6649ed 100644 --- a/doctrine/doctrine-migrations-bundle/1.2/config/packages/doctrine_migrations.php +++ b/doctrine/doctrine-migrations-bundle/2.2/config/packages/doctrine_migrations.php @@ -6,7 +6,8 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->extension('doctrine_migrations', [ - 'dir_name' => '%kernel.project_dir%/migrations', - 'namespace' => 'DoctrineMigrations', + 'migrations_paths' => [ + 'DoctrineMigrations' => '%kernel.project_dir%/migrations', + ], ]); }; ```
2.2 vs 3.1 ```diff diff --git a/doctrine/doctrine-migrations-bundle/2.2/config/packages/doctrine_migrations.php b/doctrine/doctrine-migrations-bundle/3.1/config/packages/doctrine_migrations.php index f6649ed..5ff6a2c 100644 --- a/doctrine/doctrine-migrations-bundle/2.2/config/packages/doctrine_migrations.php +++ b/doctrine/doctrine-migrations-bundle/3.1/config/packages/doctrine_migrations.php @@ -9,5 +9,6 @@ return static function (ContainerConfigurator $containerConfigurator): void { 'migrations_paths' => [ 'DoctrineMigrations' => '%kernel.project_dir%/migrations', ], + 'enable_profiler' => '%kernel.debug%', ]); }; ```

easycorp/easyadmin-bundle

1.17 vs 2.0 ```diff diff --git a/easycorp/easyadmin-bundle/1.17/config/routes/easy_admin.php b/easycorp/easyadmin-bundle/2.0/config/routes/easy_admin.php index 3985342..1fb590b 100644 --- a/easycorp/easyadmin-bundle/1.17/config/routes/easy_admin.php +++ b/easycorp/easyadmin-bundle/2.0/config/routes/easy_admin.php @@ -5,6 +5,6 @@ declare(strict_types=1); use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator; return static function (RoutingConfigurator $routingConfigurator): void { - $routingConfigurator->import('@EasyAdminBundle/Controller/AdminController.php', 'annotation') + $routingConfigurator->import('@EasyAdminBundle/Controller/EasyAdminController.php', 'annotation') ->prefix('/admin'); }; ```
2.0 vs 3.0 ```diff diff --git a/easycorp/easyadmin-bundle/2.0/config/packages/easy_admin.php b/easycorp/easyadmin-bundle/2.0/config/packages/easy_admin.php deleted file mode 100644 index e69de29..0000000 diff --git a/easycorp/easyadmin-bundle/2.0/config/routes/easy_admin.php b/easycorp/easyadmin-bundle/2.0/config/routes/easy_admin.php deleted file mode 100644 index 1fb590b..0000000 --- a/easycorp/easyadmin-bundle/2.0/config/routes/easy_admin.php +++ /dev/null @@ -1,10 +0,0 @@ -import('@EasyAdminBundle/Controller/EasyAdminController.php', 'annotation') - ->prefix('/admin'); -}; diff --git a/easycorp/easyadmin-bundle/2.0/manifest.json b/easycorp/easyadmin-bundle/3.0/manifest.json index dd96174..bd6763a 100644 --- a/easycorp/easyadmin-bundle/2.0/manifest.json +++ b/easycorp/easyadmin-bundle/3.0/manifest.json @@ -2,8 +2,5 @@ "bundles": { "EasyCorp\\Bundle\\EasyAdminBundle\\EasyAdminBundle": ["all"] }, - "copy-from-recipe": { - "config/": "%CONFIG_DIR%/" - }, "aliases": ["admin-gen", "admin-generator", "admin"] } ```

friendsofphp/php-cs-fixer

2.2 vs 2.16 ```diff diff --git a/friendsofphp/php-cs-fixer/2.2/.php_cs.dist b/friendsofphp/php-cs-fixer/2.16/.php_cs.dist index afe1118..2aa712c 100644 --- a/friendsofphp/php-cs-fixer/2.2/.php_cs.dist +++ b/friendsofphp/php-cs-fixer/2.16/.php_cs.dist @@ -8,7 +8,6 @@ $finder = PhpCsFixer\Finder::create() return PhpCsFixer\Config::create() ->setRules([ '@Symfony' => true, - 'array_syntax' => ['syntax' => 'short'], ]) ->setFinder($finder) ; ```
2.16 vs 2.17 ```diff diff --git a/friendsofphp/php-cs-fixer/2.16/.php_cs.dist b/friendsofphp/php-cs-fixer/2.17/.php_cs.dist index 2aa712c..3788194 100644 --- a/friendsofphp/php-cs-fixer/2.16/.php_cs.dist +++ b/friendsofphp/php-cs-fixer/2.17/.php_cs.dist @@ -1,11 +1,11 @@ in(__DIR__) ->exclude('var') ; -return PhpCsFixer\Config::create() +return (new PhpCsFixer\Config()) ->setRules([ '@Symfony' => true, ]) ```
2.17 vs 2.19 ```diff diff --git a/friendsofphp/php-cs-fixer/2.17/.php_cs.dist b/friendsofphp/php-cs-fixer/2.19/.php-cs-fixer.dist.php similarity index 70% rename from friendsofphp/php-cs-fixer/2.17/.php_cs.dist rename to friendsofphp/php-cs-fixer/2.19/.php-cs-fixer.dist.php index 3788194..e63611e 100644 --- a/friendsofphp/php-cs-fixer/2.17/.php_cs.dist +++ b/friendsofphp/php-cs-fixer/2.19/.php-cs-fixer.dist.php @@ -10,4 +10,5 @@ return (new PhpCsFixer\Config()) '@Symfony' => true, ]) ->setFinder($finder) + ->setCacheFile('.php-cs-fixer.cache') // forward compatibility with 3.x line ; diff --git a/friendsofphp/php-cs-fixer/2.17/manifest.json b/friendsofphp/php-cs-fixer/2.19/manifest.json index 56096a3..b24240a 100644 --- a/friendsofphp/php-cs-fixer/2.17/manifest.json +++ b/friendsofphp/php-cs-fixer/2.19/manifest.json @@ -1,10 +1,10 @@ { "aliases": ["cs-fixer", "php-cs-fixer"], "copy-from-recipe": { - ".php_cs.dist": ".php_cs.dist" + ".php-cs-fixer.dist.php": ".php-cs-fixer.dist.php" }, "gitignore": [ - "/.php_cs", - "/.php_cs.cache" + "/.php-cs-fixer.php", + "/.php-cs-fixer.cache" ] } ```
2.19 vs 3.0 ```diff diff --git a/friendsofphp/php-cs-fixer/2.19/.php-cs-fixer.dist.php b/friendsofphp/php-cs-fixer/3.0/.php-cs-fixer.dist.php index e63611e..3788194 100644 --- a/friendsofphp/php-cs-fixer/2.19/.php-cs-fixer.dist.php +++ b/friendsofphp/php-cs-fixer/3.0/.php-cs-fixer.dist.php @@ -10,5 +10,4 @@ return (new PhpCsFixer\Config()) '@Symfony' => true, ]) ->setFinder($finder) - ->setCacheFile('.php-cs-fixer.cache') // forward compatibility with 3.x line ; ```

hautelook/alice-bundle

2.1 vs 2.2 ```diff 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 @@ -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 @@ +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 ac6cb85..0000000 --- a/hautelook/alice-bundle/2.1/config/packages/test/hautelook_alice.php +++ /dev/null @@ -1,9 +0,0 @@ -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" } } ```

javiereguiluz/easyadmin-bundle

1.16 vs 1.17 ```diff diff --git a/javiereguiluz/easyadmin-bundle/1.16/manifest.json b/javiereguiluz/easyadmin-bundle/1.17/manifest.json index 4690971..4d8d012 100644 --- a/javiereguiluz/easyadmin-bundle/1.16/manifest.json +++ b/javiereguiluz/easyadmin-bundle/1.17/manifest.json @@ -1,6 +1,6 @@ { "bundles": { - "JavierEguiluz\\Bundle\\EasyAdminBundle\\EasyAdminBundle": ["all"] + "EasyCorp\\Bundle\\EasyAdminBundle\\EasyAdminBundle": ["all"] }, "copy-from-recipe": { "config/": "%CONFIG_DIR%/" ```

lexik/jwt-authentication-bundle

2.3 vs 2.5 ```diff diff --git a/lexik/jwt-authentication-bundle/2.3/config/packages/lexik_jwt_authentication.php b/lexik/jwt-authentication-bundle/2.5/config/packages/lexik_jwt_authentication.php index a3ae493..c249cb8 100644 --- a/lexik/jwt-authentication-bundle/2.3/config/packages/lexik_jwt_authentication.php +++ b/lexik/jwt-authentication-bundle/2.5/config/packages/lexik_jwt_authentication.php @@ -6,8 +6,8 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->extension('lexik_jwt_authentication', [ - 'private_key_path' => '%kernel.project_dir%/%env(JWT_PRIVATE_KEY_PATH)%', - 'public_key_path' => '%kernel.project_dir%/%env(JWT_PUBLIC_KEY_PATH)%', + 'secret_key' => '%env(resolve:JWT_SECRET_KEY)%', + 'public_key' => '%env(resolve:JWT_PUBLIC_KEY)%', 'pass_phrase' => '%env(JWT_PASSPHRASE)%', ]); }; diff --git a/lexik/jwt-authentication-bundle/2.3/manifest.json b/lexik/jwt-authentication-bundle/2.5/manifest.json index 3090cf0..fac283e 100644 --- a/lexik/jwt-authentication-bundle/2.3/manifest.json +++ b/lexik/jwt-authentication-bundle/2.5/manifest.json @@ -7,9 +7,8 @@ }, "aliases": ["jwt", "jwt-auth"], "env": { - "#1": "Key paths should be relative to the project directory", - "JWT_PRIVATE_KEY_PATH": "%CONFIG_DIR%/jwt/private.pem", - "JWT_PUBLIC_KEY_PATH": "%CONFIG_DIR%/jwt/public.pem", + "JWT_SECRET_KEY": "%kernel.project_dir%/%CONFIG_DIR%/jwt/private.pem", + "JWT_PUBLIC_KEY": "%kernel.project_dir%/%CONFIG_DIR%/jwt/public.pem", "JWT_PASSPHRASE": "%generate(secret)%" }, "gitignore": [ ```

nelmio/alice

3.2 vs 3.3 ```diff 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 f552030..0000000 --- a/nelmio/alice/3.2/config/packages/dev/nelmio_alice.php +++ /dev/null @@ -1,11 +0,0 @@ -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..a1eb1fc --- /dev/null +++ b/nelmio/alice/3.3/config/packages/nelmio_alice.php @@ -0,0 +1,18 @@ +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 e1ef01d..0000000 --- a/nelmio/alice/3.2/config/packages/test/nelmio_alice.php +++ /dev/null @@ -1,9 +0,0 @@ -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" } } ```

phpunit/phpunit

4.7 vs 9.3 ```diff diff --git a/phpunit/phpunit/4.7/phpunit.xml.dist b/phpunit/phpunit/9.3/phpunit.xml.dist index 5e90897..af3f147 100644 --- a/phpunit/phpunit/4.7/phpunit.xml.dist +++ b/phpunit/phpunit/9.3/phpunit.xml.dist @@ -6,12 +6,15 @@ backupGlobals="false" colors="true" bootstrap="tests/bootstrap.php" + convertDeprecationsToExceptions="false" > + + @@ -20,11 +23,11 @@ - - + + src - - + + ```

scheb/2fa-bundle

5.0 vs 6.0 ```diff 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 656627e..f8c9354 100644 --- a/scheb/2fa-bundle/5.0/config/packages/scheb_2fa.php +++ b/scheb/2fa-bundle/6.0/config/packages/scheb_2fa.php @@ -6,6 +6,6 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->extension('scheb_two_factor', [ - 'security_tokens' => ['Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken'], + 'security_tokens' => ['Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken', 'Symfony\Component\Security\Http\Authenticator\Token\PostAuthenticationToken'], ]); }; ```

sensio/framework-extra-bundle

4.0 vs 5.2 ```diff diff --git a/sensio/framework-extra-bundle/5.2/config/packages/sensio_framework_extra.php b/sensio/framework-extra-bundle/5.2/config/packages/sensio_framework_extra.php new file mode 100644 index 0000000..a3ee78e --- /dev/null +++ b/sensio/framework-extra-bundle/5.2/config/packages/sensio_framework_extra.php @@ -0,0 +1,13 @@ +extension('sensio_framework_extra', [ + 'router' => [ + 'annotations' => false, + ], + ]); +}; diff --git a/sensio/framework-extra-bundle/4.0/manifest.json b/sensio/framework-extra-bundle/5.2/manifest.json index 83be4b0..dc263ba 100644 --- a/sensio/framework-extra-bundle/4.0/manifest.json +++ b/sensio/framework-extra-bundle/5.2/manifest.json @@ -2,5 +2,8 @@ "bundles": { "Sensio\\Bundle\\FrameworkExtraBundle\\SensioFrameworkExtraBundle": ["all"] }, + "copy-from-recipe": { + "config/": "%CONFIG_DIR%/" + }, "aliases": ["annotations", "annotation", "annot", "annots"] } ```

symfony/amazon-mailer

4.3 vs 4.4 ```diff diff --git a/symfony/amazon-mailer/4.3/manifest.json b/symfony/amazon-mailer/4.4/manifest.json index d55bae9..e704dff 100644 --- a/symfony/amazon-mailer/4.3/manifest.json +++ b/symfony/amazon-mailer/4.4/manifest.json @@ -1,8 +1,6 @@ { "env": { - "#1": "AWS_ACCESS_KEY=", - "#2": "AWS_SECRET_KEY=", - "#3": "MAILER_DSN=smtp://$AWS_ACCESS_KEY:$AWS_SECRET_KEY@ses?region=eu-west-1", - "#4": "MAILER_DSN=http://$AWS_ACCESS_KEY:$AWS_SECRET_KEY@ses?region=eu-west-1" + "#1": "MAILER_DSN=ses://ACCESS_KEY:SECRET_KEY@default?region=eu-west-1", + "#2": "MAILER_DSN=ses+smtp://ACCESS_KEY:SECRET_KEY@default?region=eu-west-1" } } ```

symfony/console

3.3 vs 4.2 ```diff diff --git a/symfony/console/3.3/config/bootstrap.php b/symfony/console/4.2/config/bootstrap.php index 703da0d..55560fb 100644 --- a/symfony/console/3.3/config/bootstrap.php +++ b/symfony/console/4.2/config/bootstrap.php @@ -13,40 +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([ - '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 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 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 @@ -=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 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/debug-bundle

3.3 vs 4.1 ```diff diff --git a/symfony/debug-bundle/4.1/config/packages/dev/debug.php b/symfony/debug-bundle/4.1/config/packages/dev/debug.php new file mode 100644 index 0000000..139ef23 --- /dev/null +++ b/symfony/debug-bundle/4.1/config/packages/dev/debug.php @@ -0,0 +1,11 @@ +extension('debug', [ + 'dump_destination' => 'tcp://%env(VAR_DUMPER_SERVER)%', + ]); +}; diff --git a/symfony/debug-bundle/3.3/manifest.json b/symfony/debug-bundle/4.1/manifest.json index db28aa7..8344d05 100644 --- a/symfony/debug-bundle/3.3/manifest.json +++ b/symfony/debug-bundle/4.1/manifest.json @@ -1,5 +1,8 @@ { "bundles": { - "Symfony\\Bundle\\DebugBundle\\DebugBundle": ["dev", "test"] + "Symfony\\Bundle\\DebugBundle\\DebugBundle": ["dev"] + }, + "copy-from-recipe": { + "config/": "%CONFIG_DIR%/" } } ```
4.1 vs 5.3 ```diff diff --git a/symfony/debug-bundle/4.1/config/packages/dev/debug.php b/symfony/debug-bundle/5.3/config/packages/debug.php similarity index 51% rename from symfony/debug-bundle/4.1/config/packages/dev/debug.php rename to symfony/debug-bundle/5.3/config/packages/debug.php index 139ef23..6baa0bc 100644 --- a/symfony/debug-bundle/4.1/config/packages/dev/debug.php +++ b/symfony/debug-bundle/5.3/config/packages/debug.php @@ -5,7 +5,9 @@ declare(strict_types=1); use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; return static function (ContainerConfigurator $containerConfigurator): void { - $containerConfigurator->extension('debug', [ - 'dump_destination' => 'tcp://%env(VAR_DUMPER_SERVER)%', - ]); + if ($containerConfigurator->env() === 'dev') { + $containerConfigurator->extension('debug', [ + 'dump_destination' => 'tcp://%env(VAR_DUMPER_SERVER)%', + ]); + } }; diff --git a/symfony/debug-bundle/4.1/manifest.json b/symfony/debug-bundle/5.3/manifest.json index 8344d05..d2ce5f9 100644 --- a/symfony/debug-bundle/4.1/manifest.json +++ b/symfony/debug-bundle/5.3/manifest.json @@ -4,5 +4,8 @@ }, "copy-from-recipe": { "config/": "%CONFIG_DIR%/" + }, + "conflict": { + "symfony/framework-bundle": "<5.3" } } ```

symfony/framework-bundle

3.3 vs 3.4 ```diff 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 diff --git a/symfony/framework-bundle/3.4/config/bootstrap.php b/symfony/framework-bundle/4.2/config/bootstrap.php index 703da0d..55560fb 100644 --- a/symfony/framework-bundle/3.4/config/bootstrap.php +++ b/symfony/framework-bundle/4.2/config/bootstrap.php @@ -13,40 +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([ - '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 664e93a..fc4d7d9 100644 --- a/symfony/framework-bundle/3.4/config/services.php +++ b/symfony/framework-bundle/4.2/config/services.php @@ -12,7 +12,7 @@ return static function (ContainerConfigurator $containerConfigurator): void { ->autoconfigure(); $services->load('App\\', __DIR__.'/../src/*') - ->exclude([__DIR__.'/../src/{DependencyInjection,Entity,Migrations,Tests,Kernel.php}']); + ->exclude([__DIR__.'/../src/{DependencyInjection,Entity,Kernel.php}']); $services->load('App\Controller\\', __DIR__.'/../src/Controller') ->tag('controller.service_arguments'); 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 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 @@ +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 fc4d7d9..f842509 100644 --- a/symfony/framework-bundle/4.2/config/services.php +++ b/symfony/framework-bundle/4.4/config/services.php @@ -11,9 +11,9 @@ return static function (ContainerConfigurator $containerConfigurator): void { ->autowire() ->autoconfigure(); - $services->load('App\\', __DIR__.'/../src/*') - ->exclude([__DIR__.'/../src/{DependencyInjection,Entity,Kernel.php}']); + $services->load('App\\', __DIR__.'/../src/') + ->exclude([__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 @@
4.4 vs 5.1 ```diff 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 @@ -=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 @@ 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 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 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 @@ -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 50% 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..92bf8c3 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') - ->prefix('/_error'); + 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 f842509..5cea39f 100644 --- a/symfony/framework-bundle/5.2/config/services.php +++ b/symfony/framework-bundle/5.3/config/services.php @@ -13,7 +13,4 @@ return static function (ContainerConfigurator $containerConfigurator): void { $services->load('App\\', __DIR__.'/../src/') ->exclude([__DIR__.'/../src/DependencyInjection/', __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 @@ 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 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 diff --git a/symfony/framework-bundle/5.4/config/packages/framework.php b/symfony/framework-bundle/6.2/config/packages/framework.php index 47144ff..88501fc 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, + 'catch_all_throwables' => true, 'session' => [ 'handler_id' => null, 'cookie_secure' => 'auto', ```

symfony/google-chat-notifier

5.2 vs 5.3 ```diff diff --git a/symfony/google-chat-notifier/5.2/manifest.json b/symfony/google-chat-notifier/5.3/manifest.json index 508463c..3b0979c 100644 --- a/symfony/google-chat-notifier/5.2/manifest.json +++ b/symfony/google-chat-notifier/5.3/manifest.json @@ -1,6 +1,6 @@ { "env": { "#1": "See https://developers.google.com/hangouts/chat/how-tos/webhooks", - "#2": "GOOGLE_CHAT_DSN=googlechat://ACCESS_KEY:ACCESS_TOKEN@default/SPACE?threadKey=THREAD_KEY" + "#2": "GOOGLE_CHAT_DSN=googlechat://ACCESS_KEY:ACCESS_TOKEN@default/SPACE?thread_key=THREAD_KEY" } } ```

symfony/google-mailer

4.3 vs 4.4 ```diff diff --git a/symfony/google-mailer/4.3/manifest.json b/symfony/google-mailer/4.4/manifest.json index c4bb778..5dcece2 100644 --- a/symfony/google-mailer/4.3/manifest.json +++ b/symfony/google-mailer/4.4/manifest.json @@ -1,8 +1,6 @@ { "env": { "#1": "Gmail SHOULD NOT be used on production, use it in development only.", - "#2": "GMAIL_USERNAME=", - "#3": "GMAIL_PASSWORD=", - "#4": "MAILER_DSN=smtp://$GMAIL_USERNAME:$GMAIL_PASSWORD@gmail" + "#2": "MAILER_DSN=gmail://USERNAME:PASSWORD@default" } } ```

symfony/lock

4.4 vs 5.2 ```diff diff --git a/symfony/lock/4.4/manifest.json b/symfony/lock/5.2/manifest.json index 2d47810..53a9f5e 100644 --- a/symfony/lock/4.4/manifest.json +++ b/symfony/lock/5.2/manifest.json @@ -4,7 +4,7 @@ }, "env": { "#1": "Choose one of the stores below", - "#2": "LOCK_DSN=redis://localhost", + "#2": "postgresql+advisory://db_user:db_password@localhost/db_name", "LOCK_DSN": "semaphore" } } ```

symfony/mailchimp-mailer

4.3 vs 4.4 ```diff diff --git a/symfony/mailchimp-mailer/4.3/manifest.json b/symfony/mailchimp-mailer/4.4/manifest.json index 589c4a4..b72bede 100644 --- a/symfony/mailchimp-mailer/4.3/manifest.json +++ b/symfony/mailchimp-mailer/4.4/manifest.json @@ -1,9 +1,6 @@ { "env": { - "#1": "MANDRILL_USERNAME=", - "#2": "MANDRILL_PASSWORD=", - "#3": "MAILER_DSN=smtp://$MANDRILL_USERNAME:$MANDRILL_PASSWORD@mandrill", - "#4": "MANDRILL_KEY=", - "#5": "MAILER_DSN=http://$MANDRILL_KEY@mandrill" + "#1": "MAILER_DSN=mandrill://KEY@default", + "#2": "MAILER_DSN=mandrill+smtp://USERNAME:PASSWORD@default" } } ```

symfony/mailgun-mailer

4.3 vs 4.4 ```diff diff --git a/symfony/mailgun-mailer/4.3/manifest.json b/symfony/mailgun-mailer/4.4/manifest.json index 576fd92..464bdd2 100644 --- a/symfony/mailgun-mailer/4.3/manifest.json +++ b/symfony/mailgun-mailer/4.4/manifest.json @@ -1,10 +1,6 @@ { "env": { - "#1": "MAILGUN_USERNAME=", - "#2": "MAILGUN_PASSWORD=", - "#3": "MAILER_DSN=smtp://$MAILGUN_USERNAME:$MAILGUN_PASSWORD@mailgun", - "#4": "MAILGUN_KEY=", - "#5": "MAILGUN_DOMAIN=", - "#6": "MAILER_DSN=http://$MAILGUN_KEY:$MAILGUN_DOMAIN@mailgun" + "#1": "MAILER_DSN=mailgun://KEY:DOMAIN@default?region=us", + "#2": "MAILER_DSN=mailgun+smtp://USERNAME:PASSWORD@default?region=us" } } ```

symfony/mercure-bundle

0.1 vs 0.2 ```diff diff --git a/symfony/mercure-bundle/0.1/config/packages/mercure.php b/symfony/mercure-bundle/0.2/config/packages/mercure.php index 2e3a2dc..3d66792 100644 --- a/symfony/mercure-bundle/0.1/config/packages/mercure.php +++ b/symfony/mercure-bundle/0.2/config/packages/mercure.php @@ -6,6 +6,7 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->extension('mercure', [ + 'enable_profiler' => '%kernel.debug%', 'hubs' => [ 'default' => [ 'url' => '%env(MERCURE_PUBLISH_URL)%', ```
0.2 vs 0.3 ```diff diff --git a/symfony/mercure-bundle/0.2/config/packages/mercure.php b/symfony/mercure-bundle/0.3/config/packages/mercure.php index 3d66792..461c635 100644 --- a/symfony/mercure-bundle/0.2/config/packages/mercure.php +++ b/symfony/mercure-bundle/0.3/config/packages/mercure.php @@ -6,11 +6,14 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->extension('mercure', [ - 'enable_profiler' => '%kernel.debug%', 'hubs' => [ 'default' => [ - 'url' => '%env(MERCURE_PUBLISH_URL)%', - 'jwt' => '%env(MERCURE_JWT_TOKEN)%', + 'url' => '%env(MERCURE_URL)%', + 'public_url' => '%env(MERCURE_PUBLIC_URL)%', + 'jwt' => [ + 'secret' => '%env(MERCURE_JWT_SECRET)%', + 'publish' => '*', + ], ], ], ]); diff --git a/symfony/mercure-bundle/0.2/manifest.json b/symfony/mercure-bundle/0.3/manifest.json index ba8f74d..cd7eac5 100644 --- a/symfony/mercure-bundle/0.2/manifest.json +++ b/symfony/mercure-bundle/0.3/manifest.json @@ -7,9 +7,41 @@ }, "env": { "#1": "See https://symfony.com/doc/current/mercure.html#configuration", - "MERCURE_PUBLISH_URL": "http://mercure/.well-known/mercure", - "#2": "The default token is signed with the secret key: !ChangeMe!", - "MERCURE_JWT_TOKEN": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJtZXJjdXJlIjp7InB1Ymxpc2giOltdfX0.Oo0yg7y4yMa1vr_bziltxuTCqb8JVHKxp-f_FwwOim0" + "#2": "The URL of the Mercure hub, used by the app to publish updates (can be a local URL)", + "MERCURE_URL": "https://example.com/.well-known/mercure", + "#3": "The public URL of the Mercure hub, used by the browser to connect", + "MERCURE_PUBLIC_URL": "https://example.com/.well-known/mercure", + "#4": "The secret used to sign the JWTs", + "MERCURE_JWT_SECRET": "!ChangeMe!" + }, + "docker-compose": { + "docker-compose.yml": { + "services": [ + "mercure:", + " image: dunglas/mercure", + " restart: unless-stopped", + " environment:", + " SERVER_NAME: ':80'", + " MERCURE_PUBLISHER_JWT_KEY: '!ChangeMe!'", + " MERCURE_SUBSCRIBER_JWT_KEY: '!ChangeMe!'", + " # Set the URL of your Symfony project (without trailing slash!) as value of the cors_origins directive", + " MERCURE_EXTRA_DIRECTIVES: |", + " cors_origins http://127.0.0.1:8000", + " # Comment the following line to disable the development mode", + " command: /usr/bin/caddy run -config /etc/caddy/Caddyfile.dev", + " volumes:", + " - mercure_data:/data", + " - mercure_config:/config" + ], + "volumes": ["mercure_data:", "mercure_config:"] + }, + "docker-compose.override.yml": { + "services": [ + "mercure:", + " ports:", + " - \"80\"" + ] + } }, "aliases": ["mercure"] } ```

symfony/messenger

4.1 vs 4.3 ```diff diff --git a/symfony/messenger/4.1/manifest.json b/symfony/messenger/4.3/manifest.json index d0ff173..dc04515 100644 --- a/symfony/messenger/4.1/manifest.json +++ b/symfony/messenger/4.3/manifest.json @@ -3,10 +3,13 @@ "config/": "%CONFIG_DIR%/" }, "env": { - "#1": "MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages" + "#1": "Choose one of the transports below", + "#2": "MESSENGER_TRANSPORT_DSN=doctrine://default", + "#3": "MESSENGER_TRANSPORT_DSN=amqp://guest:guest@localhost:5672/%2f/messages", + "#4": "MESSENGER_TRANSPORT_DSN=redis://localhost:6379/messages" }, "aliases": ["messenger"], "conflict": { - "symfony/framework-bundle": "<4.1" + "symfony/framework-bundle": "<4.3" } } diff --git a/symfony/messenger/4.1/post-install.txt b/symfony/messenger/4.3/post-install.txt index 6a2c8ad..8844fe7 100644 --- a/symfony/messenger/4.1/post-install.txt +++ b/symfony/messenger/4.3/post-install.txt @@ -1,13 +1,11 @@ * You're ready to use the Messenger component. You can define your own message buses - or start using the default one right now by injecting the messenger.bus.default service - or typehinting Symfony\Component\Messenger\MessageBusInterface in your code. + or start using the default one right now by injecting the message_bus service + or type-hinting Symfony\Component\Messenger\MessageBusInterface in your code. - * If you need to send messages to your broker, you can benefit from the built-in - AMQP transport by: + * To send messages to a transport and handle them asynchronously: - 1. Installing the AMQP pack by running composer require amqp; - 2. Uncommenting the MESSENGER_TRANSPORT_DSN env var - and framework.messenger.transports.amqp config; - 3. Routing your messages to the amqp sender. + 1. Uncomment the MESSENGER_TRANSPORT_DSN env var in .env + and framework.messenger.transports.async in config/packages/messenger.yaml; + 2. Route your message classes to the async transport in config/packages/messenger.yaml. - * Read the documentation at https://symfony.com/doc/master/messenger.html + * Read the documentation at https://symfony.com/doc/current/messenger.html ```
4.3 vs 5.4 ```diff diff --git a/symfony/messenger/4.3/config/packages/messenger.php b/symfony/messenger/5.4/config/packages/messenger.php index ef9937f..6b585b6 100644 --- a/symfony/messenger/4.3/config/packages/messenger.php +++ b/symfony/messenger/5.4/config/packages/messenger.php @@ -7,6 +7,7 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->extension('framework', [ 'messenger' => [ + 'reset_on_message' => true, 'transports' => null, 'routing' => null, ], ```
5.4 vs 6.0 ```diff diff --git a/symfony/messenger/5.4/config/packages/messenger.php b/symfony/messenger/6.0/config/packages/messenger.php index 6b585b6..ef9937f 100644 --- a/symfony/messenger/5.4/config/packages/messenger.php +++ b/symfony/messenger/6.0/config/packages/messenger.php @@ -7,7 +7,6 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->extension('framework', [ 'messenger' => [ - 'reset_on_message' => true, 'transports' => null, 'routing' => null, ], ```

symfony/monolog-bundle

3.1 vs 3.3 ```diff 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 c9949ff..d369a43 100644 --- a/symfony/monolog-bundle/3.1/config/packages/prod/monolog.php +++ b/symfony/monolog-bundle/3.3/config/packages/prod/monolog.php @@ -11,8 +11,8 @@ return static function (ContainerConfigurator $containerConfigurator): void { 'type' => 'fingers_crossed', 'action_level' => 'error', 'handler' => 'nested', + 'excluded_http_codes' => [404, 405], 'buffer_size' => 50, - 'excluded_404s' => ['^/'], ], '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 5b8b32b..88060f8 100644 --- a/symfony/monolog-bundle/3.1/config/packages/test/monolog.php +++ b/symfony/monolog-bundle/3.3/config/packages/test/monolog.php @@ -8,10 +8,16 @@ 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', - 'channels' => ['!event'], ], ], ]); ```
3.3 vs 3.7 ```diff 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 7435558..0000000 --- a/symfony/monolog-bundle/3.3/config/packages/dev/monolog.php +++ /dev/null @@ -1,23 +0,0 @@ -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..f1f357d --- /dev/null +++ b/symfony/monolog-bundle/3.7/config/packages/monolog.php @@ -0,0 +1,75 @@ +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 d369a43..0000000 --- a/symfony/monolog-bundle/3.3/config/packages/prod/monolog.php +++ /dev/null @@ -1,29 +0,0 @@ -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 88060f8..0000000 --- a/symfony/monolog-bundle/3.3/config/packages/test/monolog.php +++ /dev/null @@ -1,24 +0,0 @@ -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/phpunit-bridge

3.3 vs 4.1 ```diff diff --git a/symfony/phpunit-bridge/3.3/.env.test b/symfony/phpunit-bridge/4.1/.env.test index 24a43c0..9e7162f 100644 --- a/symfony/phpunit-bridge/3.3/.env.test +++ b/symfony/phpunit-bridge/4.1/.env.test @@ -2,3 +2,5 @@ KERNEL_CLASS='App\Kernel' APP_SECRET='$ecretf0rt3st' SYMFONY_DEPRECATIONS_HELPER=999999 +PANTHER_APP_ENV=panther +PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots diff --git a/symfony/phpunit-bridge/3.3/bin/phpunit b/symfony/phpunit-bridge/4.1/bin/phpunit index 0b79fd4..63dae24 100755 --- a/symfony/phpunit-bridge/3.3/bin/phpunit +++ b/symfony/phpunit-bridge/4.1/bin/phpunit @@ -6,12 +6,6 @@ if (!file_exists(dirname(__DIR__).'/vendor/symfony/phpunit-bridge/bin/simple-php exit(1); } -if (false === getenv('SYMFONY_PHPUNIT_VERSION')) { - putenv('SYMFONY_PHPUNIT_VERSION=6.5'); -} -if (false === getenv('SYMFONY_PHPUNIT_REMOVE')) { - putenv('SYMFONY_PHPUNIT_REMOVE=symfony/yaml'); -} if (false === getenv('SYMFONY_PHPUNIT_DIR')) { putenv('SYMFONY_PHPUNIT_DIR='.__DIR__.'/.phpunit'); } diff --git a/symfony/phpunit-bridge/3.3/phpunit.xml.dist b/symfony/phpunit-bridge/4.1/phpunit.xml.dist index 294a559..d81f0c3 100644 --- a/symfony/phpunit-bridge/3.3/phpunit.xml.dist +++ b/symfony/phpunit-bridge/4.1/phpunit.xml.dist @@ -8,10 +8,11 @@ bootstrap="tests/bootstrap.php" > - + + @@ -21,8 +22,8 @@ - - src + + src ```
4.1 vs 4.3 ```diff diff --git a/symfony/phpunit-bridge/4.1/bin/phpunit b/symfony/phpunit-bridge/4.3/bin/phpunit index 63dae24..4d1ed05 100755 --- a/symfony/phpunit-bridge/4.1/bin/phpunit +++ b/symfony/phpunit-bridge/4.3/bin/phpunit @@ -1,8 +1,8 @@ #!/usr/bin/env php + ```
4.3 vs 5.1 ```diff diff --git a/symfony/phpunit-bridge/4.3/phpunit.xml.dist b/symfony/phpunit-bridge/5.1/phpunit.xml.dist index 5766779..0bd20c8 100644 --- a/symfony/phpunit-bridge/4.3/phpunit.xml.dist +++ b/symfony/phpunit-bridge/5.1/phpunit.xml.dist @@ -8,12 +8,11 @@ bootstrap="tests/bootstrap.php" > - - + @@ -31,4 +30,11 @@ + + + ```
5.1 vs 5.3 ```diff diff --git a/symfony/phpunit-bridge/5.1/bin/phpunit b/symfony/phpunit-bridge/5.3/bin/phpunit index 4d1ed05..f26f2c7 100755 --- a/symfony/phpunit-bridge/5.1/bin/phpunit +++ b/symfony/phpunit-bridge/5.3/bin/phpunit @@ -1,13 +1,19 @@ #!/usr/bin/env php + - + @@ -21,11 +23,11 @@ - - + + src - - + + diff --git a/symfony/phpunit-bridge/5.1/post-install.txt b/symfony/phpunit-bridge/5.3/post-install.txt index 2db39ab..e9da2a6 100644 --- a/symfony/phpunit-bridge/5.1/post-install.txt +++ b/symfony/phpunit-bridge/5.3/post-install.txt @@ -1,2 +1,3 @@ * Write test cases in the tests/ folder - * Run php bin/phpunit + * Use MakerBundle's make:test command as a shortcut! + * Run the tests with php bin/phpunit ```

symfony/postmark-mailer

4.3 vs 4.4 ```diff diff --git a/symfony/postmark-mailer/4.3/manifest.json b/symfony/postmark-mailer/4.4/manifest.json index b6b855d..e7d798e 100644 --- a/symfony/postmark-mailer/4.3/manifest.json +++ b/symfony/postmark-mailer/4.4/manifest.json @@ -1,6 +1,5 @@ { "env": { - "#1": "POSTMARK_ID=", - "#2": "MAILER_DSN=smtp://$POSTMARK_ID@postmark" + "#1": "MAILER_DSN=postmark://ID@default" } } ```

symfony/requirements-checker

1.0 vs 2.0 ```diff diff --git a/symfony/requirements-checker/1.0/manifest.json b/symfony/requirements-checker/2.0/manifest.json index 993ae66..aa246a0 100644 --- a/symfony/requirements-checker/1.0/manifest.json +++ b/symfony/requirements-checker/2.0/manifest.json @@ -1,7 +1,4 @@ { - "copy-from-recipe": { - "public/": "%PUBLIC_DIR%/" - }, "composer-scripts": { "requirements-checker": "script" }, diff --git a/symfony/requirements-checker/1.0/public/check.php b/symfony/requirements-checker/1.0/public/check.php deleted file mode 100644 index 2be7d49..0000000 --- a/symfony/requirements-checker/1.0/public/check.php +++ /dev/null @@ -1,3 +0,0 @@ -

symfony/routing

3.3 vs 4.0 ```diff ```
4.0 vs 4.2 ```diff diff --git a/symfony/routing/4.2/config/packages/routing.php b/symfony/routing/4.2/config/packages/routing.php new file mode 100644 index 0000000..6e2d0ec --- /dev/null +++ b/symfony/routing/4.2/config/packages/routing.php @@ -0,0 +1,13 @@ +extension('framework', [ + 'router' => [ + 'utf8' => true, + ], + ]); +}; ```
4.2 vs 5.1 ```diff ```
5.1 vs 5.3 ```diff diff --git a/symfony/routing/5.1/config/packages/prod/routing.php b/symfony/routing/5.1/config/packages/prod/routing.php deleted file mode 100644 index c307544..0000000 --- a/symfony/routing/5.1/config/packages/prod/routing.php +++ /dev/null @@ -1,13 +0,0 @@ -extension('framework', [ - 'router' => [ - 'strict_requirements' => null, - ], - ]); -}; diff --git a/symfony/routing/5.1/config/packages/routing.php b/symfony/routing/5.3/config/packages/routing.php index 6e2d0ec..c965886 100644 --- a/symfony/routing/5.1/config/packages/routing.php +++ b/symfony/routing/5.3/config/packages/routing.php @@ -10,4 +10,11 @@ return static function (ContainerConfigurator $containerConfigurator): void { 'utf8' => true, ], ]); + if ($containerConfigurator->env() === 'prod') { + $containerConfigurator->extension('framework', [ + 'router' => [ + 'strict_requirements' => null, + ], + ]); + } }; diff --git a/symfony/routing/5.1/manifest.json b/symfony/routing/5.3/manifest.json index c0c66b6..a3f340e 100644 --- a/symfony/routing/5.1/manifest.json +++ b/symfony/routing/5.3/manifest.json @@ -2,5 +2,8 @@ "copy-from-recipe": { "config/": "%CONFIG_DIR%/" }, - "aliases": ["router"] + "aliases": ["router"], + "conflict": { + "symfony/framework-bundle": "<5.3" + } } ```
5.3 vs 6.0 ```diff diff --git a/symfony/routing/5.3/config/routes.php b/symfony/routing/6.0/config/routes.php index e69de29..2db7c30 100644 --- a/symfony/routing/5.3/config/routes.php +++ b/symfony/routing/6.0/config/routes.php @@ -0,0 +1,11 @@ +import('../src/Controller/', 'annotation'); + + $routingConfigurator->import('../src/Kernel.php', 'annotation'); +}; ```
6.0 vs 6.1 ```diff diff --git a/symfony/routing/6.0/config/routes.php b/symfony/routing/6.1/config/routes.php index 2db7c30..7dcefb2 100644 --- a/symfony/routing/6.0/config/routes.php +++ b/symfony/routing/6.1/config/routes.php @@ -5,7 +5,5 @@ declare(strict_types=1); use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator; return static function (RoutingConfigurator $routingConfigurator): void { - $routingConfigurator->import('../src/Controller/', 'annotation'); - - $routingConfigurator->import('../src/Kernel.php', 'annotation'); + $routingConfigurator->import('../src/Controller/', 'attribute'); }; ```

symfony/security-bundle

3.3 vs 4.4 ```diff diff --git a/symfony/security-bundle/3.3/config/packages/security.php b/symfony/security-bundle/4.4/config/packages/security.php index 27ef8c5..28ac2a4 100644 --- a/symfony/security-bundle/3.3/config/packages/security.php +++ b/symfony/security-bundle/4.4/config/packages/security.php @@ -17,7 +17,7 @@ return static function (ContainerConfigurator $containerConfigurator): void { 'security' => false, ], 'main' => [ - 'anonymous' => true, + 'anonymous' => 'lazy', 'provider' => 'users_in_memory', ], ], ```
4.4 vs 5.1 ```diff diff --git a/symfony/security-bundle/4.4/config/packages/security.php b/symfony/security-bundle/5.1/config/packages/security.php index 28ac2a4..390afdb 100644 --- a/symfony/security-bundle/4.4/config/packages/security.php +++ b/symfony/security-bundle/5.1/config/packages/security.php @@ -17,7 +17,8 @@ return static function (ContainerConfigurator $containerConfigurator): void { 'security' => false, ], 'main' => [ - 'anonymous' => 'lazy', + 'anonymous' => true, + 'lazy' => true, 'provider' => 'users_in_memory', ], ], ```
5.1 vs 5.3 ```diff diff --git a/symfony/security-bundle/5.1/config/packages/security.php b/symfony/security-bundle/5.3/config/packages/security.php index 390afdb..b576f30 100644 --- a/symfony/security-bundle/5.1/config/packages/security.php +++ b/symfony/security-bundle/5.3/config/packages/security.php @@ -6,6 +6,10 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->extension('security', [ + 'enable_authenticator_manager' => true, + 'password_hashers' => [ + 'Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface' => 'auto', + ], 'providers' => [ 'users_in_memory' => [ 'memory' => null, @@ -17,11 +21,22 @@ return static function (ContainerConfigurator $containerConfigurator): void { 'security' => false, ], 'main' => [ - 'anonymous' => true, 'lazy' => true, 'provider' => 'users_in_memory', ], ], 'access_control' => null, ]); + if ($containerConfigurator->env() === 'test') { + $containerConfigurator->extension('security', [ + 'password_hashers' => [ + 'Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface' => [ + 'algorithm' => 'auto', + 'cost' => 4, + 'time_cost' => 3, + 'memory_cost' => 10, + ], + ], + ]); + } }; diff --git a/symfony/security-bundle/5.1/manifest.json b/symfony/security-bundle/5.3/manifest.json index 5d8527e..4a48e0c 100644 --- a/symfony/security-bundle/5.1/manifest.json +++ b/symfony/security-bundle/5.3/manifest.json @@ -5,5 +5,8 @@ "copy-from-recipe": { "config/": "%CONFIG_DIR%/" }, - "aliases": ["security"] + "aliases": ["security"], + "conflict": { + "symfony/framework-bundle": "<5.3" + } } ```
5.3 vs 6.0 ```diff diff --git a/symfony/security-bundle/5.3/config/packages/security.php b/symfony/security-bundle/6.0/config/packages/security.php index b576f30..858c544 100644 --- a/symfony/security-bundle/5.3/config/packages/security.php +++ b/symfony/security-bundle/6.0/config/packages/security.php @@ -6,7 +6,6 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->extension('security', [ - 'enable_authenticator_manager' => true, 'password_hashers' => [ 'Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface' => 'auto', ], ```

symfony/sendgrid-mailer

4.3 vs 4.4 ```diff diff --git a/symfony/sendgrid-mailer/4.3/manifest.json b/symfony/sendgrid-mailer/4.4/manifest.json index 891842c..bab6585 100644 --- a/symfony/sendgrid-mailer/4.3/manifest.json +++ b/symfony/sendgrid-mailer/4.4/manifest.json @@ -1,6 +1,5 @@ { "env": { - "#1": "SENDGRID_KEY=", - "#2": "MAILER_DSN=smtp://$SENDGRID_KEY@sendgrid" + "#1": "MAILER_DSN=sendgrid://KEY@default" } } ```

symfony/slack-notifier

5.0 vs 5.1 ```diff diff --git a/symfony/slack-notifier/5.0/manifest.json b/symfony/slack-notifier/5.1/manifest.json index f34b655..ba7f27c 100644 --- a/symfony/slack-notifier/5.0/manifest.json +++ b/symfony/slack-notifier/5.1/manifest.json @@ -1,5 +1,6 @@ { "env": { - "#1": "SLACK_DSN=slack://TOKEN@default?channel=CHANNEL" + "#1": "See https://api.slack.com/messaging/webhooks", + "#2": "SLACK_DSN=slack://default/ID" } } ```
5.1 vs 5.2 ```diff diff --git a/symfony/slack-notifier/5.1/manifest.json b/symfony/slack-notifier/5.2/manifest.json index ba7f27c..f34b655 100644 --- a/symfony/slack-notifier/5.1/manifest.json +++ b/symfony/slack-notifier/5.2/manifest.json @@ -1,6 +1,5 @@ { "env": { - "#1": "See https://api.slack.com/messaging/webhooks", - "#2": "SLACK_DSN=slack://default/ID" + "#1": "SLACK_DSN=slack://TOKEN@default?channel=CHANNEL" } } ```

symfony/translation

3.3 vs 5.3 ```diff ```

symfony/twig-bundle

3.3 vs 4.4 ```diff diff --git a/symfony/twig-bundle/3.3/config/packages/twig.php b/symfony/twig-bundle/4.4/config/packages/twig.php index b3fcf8e..c335154 100644 --- a/symfony/twig-bundle/3.3/config/packages/twig.php +++ b/symfony/twig-bundle/4.4/config/packages/twig.php @@ -9,5 +9,6 @@ return static function (ContainerConfigurator $containerConfigurator): void { 'default_path' => '%kernel.project_dir%/templates', 'debug' => '%kernel.debug%', 'strict_variables' => '%kernel.debug%', + 'exception_controller' => null, ]); }; diff --git a/symfony/twig-bundle/3.3/config/routes/dev/twig.php b/symfony/twig-bundle/3.3/config/routes/dev/twig.php deleted file mode 100644 index bdc1801..0000000 --- a/symfony/twig-bundle/3.3/config/routes/dev/twig.php +++ /dev/null @@ -1,10 +0,0 @@ -import('@TwigBundle/Resources/config/routing/errors.xml') - ->prefix('/_error'); -}; ```
4.4 vs 5.0 ```diff diff --git a/symfony/twig-bundle/4.4/config/packages/twig.php b/symfony/twig-bundle/5.0/config/packages/twig.php index c335154..46a0bf4 100644 --- a/symfony/twig-bundle/4.4/config/packages/twig.php +++ b/symfony/twig-bundle/5.0/config/packages/twig.php @@ -7,8 +7,5 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->extension('twig', [ 'default_path' => '%kernel.project_dir%/templates', - 'debug' => '%kernel.debug%', - 'strict_variables' => '%kernel.debug%', - 'exception_controller' => null, ]); }; ```
5.0 vs 5.3 ```diff diff --git a/symfony/twig-bundle/5.0/config/packages/test/twig.php b/symfony/twig-bundle/5.0/config/packages/test/twig.php deleted file mode 100644 index 4429ff5..0000000 --- a/symfony/twig-bundle/5.0/config/packages/test/twig.php +++ /dev/null @@ -1,11 +0,0 @@ -extension('twig', [ - 'strict_variables' => true, - ]); -}; diff --git a/symfony/twig-bundle/5.0/config/packages/twig.php b/symfony/twig-bundle/5.3/config/packages/twig.php index 46a0bf4..77331d8 100644 --- a/symfony/twig-bundle/5.0/config/packages/twig.php +++ b/symfony/twig-bundle/5.3/config/packages/twig.php @@ -8,4 +8,9 @@ return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->extension('twig', [ 'default_path' => '%kernel.project_dir%/templates', ]); + if ($containerConfigurator->env() === 'test') { + $containerConfigurator->extension('twig', [ + 'strict_variables' => true, + ]); + } }; diff --git a/symfony/twig-bundle/5.0/manifest.json b/symfony/twig-bundle/5.3/manifest.json index 30d5643..c4835ac 100644 --- a/symfony/twig-bundle/5.0/manifest.json +++ b/symfony/twig-bundle/5.3/manifest.json @@ -5,5 +5,8 @@ "copy-from-recipe": { "config/": "%CONFIG_DIR%/", "templates/": "templates/" + }, + "conflict": { + "symfony/framework-bundle": "<5.3" } } ```
5.3 vs 5.4 ```diff diff --git a/symfony/twig-bundle/5.3/templates/base.html.twig b/symfony/twig-bundle/5.4/templates/base.html.twig index 16d7273..d4f83f7 100644 --- a/symfony/twig-bundle/5.3/templates/base.html.twig +++ b/symfony/twig-bundle/5.4/templates/base.html.twig @@ -3,14 +3,14 @@ {% block title %}Welcome!{% endblock %} - {# Run `composer require symfony/webpack-encore-bundle` - and uncomment the following Encore helpers to start using Symfony UX #} + + {# Run `composer require symfony/webpack-encore-bundle` to start using Symfony UX #} {% block stylesheets %} - {#{{ encore_entry_link_tags('app') }}#} + {{ encore_entry_link_tags('app') }} {% endblock %} {% block javascripts %} - {#{{ encore_entry_script_tags('app') }}#} + {{ encore_entry_script_tags('app') }} {% endblock %} ```

symfony/validator

3.3 vs 4.1 ```diff diff --git a/symfony/validator/4.1/config/packages/test/validator.php b/symfony/validator/4.1/config/packages/test/validator.php new file mode 100644 index 0000000..d827a29 --- /dev/null +++ b/symfony/validator/4.1/config/packages/test/validator.php @@ -0,0 +1,11 @@ +extension('framework', [ + 'validation' => null, + ]); +}; diff --git a/symfony/validator/4.1/config/packages/validator.php b/symfony/validator/4.1/config/packages/validator.php new file mode 100644 index 0000000..48a835d --- /dev/null +++ b/symfony/validator/4.1/config/packages/validator.php @@ -0,0 +1,13 @@ +extension('framework', [ + 'validation' => [ + 'email_validation_mode' => 'html5', + ], + ]); +}; diff --git a/symfony/validator/3.3/manifest.json b/symfony/validator/4.1/manifest.json index 2a250e2..57f78dc 100644 --- a/symfony/validator/3.3/manifest.json +++ b/symfony/validator/4.1/manifest.json @@ -1,3 +1,6 @@ { + "copy-from-recipe": { + "config/": "%CONFIG_DIR%/" + }, "aliases": ["validation"] } ```
4.1 vs 4.3 ```diff diff --git a/symfony/validator/4.1/config/packages/test/validator.php b/symfony/validator/4.3/config/packages/test/validator.php index d827a29..e21acf8 100644 --- a/symfony/validator/4.1/config/packages/test/validator.php +++ b/symfony/validator/4.3/config/packages/test/validator.php @@ -6,6 +6,8 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->extension('framework', [ - 'validation' => null, + 'validation' => [ + 'not_compromised_password' => false, + ], ]); }; ```
4.3 vs 5.3 ```diff diff --git a/symfony/validator/4.3/config/packages/test/validator.php b/symfony/validator/4.3/config/packages/test/validator.php deleted file mode 100644 index e21acf8..0000000 --- a/symfony/validator/4.3/config/packages/test/validator.php +++ /dev/null @@ -1,13 +0,0 @@ -extension('framework', [ - 'validation' => [ - 'not_compromised_password' => false, - ], - ]); -}; diff --git a/symfony/validator/4.3/config/packages/validator.php b/symfony/validator/5.3/config/packages/validator.php index 48a835d..772f073 100644 --- a/symfony/validator/4.3/config/packages/validator.php +++ b/symfony/validator/5.3/config/packages/validator.php @@ -10,4 +10,11 @@ return static function (ContainerConfigurator $containerConfigurator): void { 'email_validation_mode' => 'html5', ], ]); + if ($containerConfigurator->env() === 'test') { + $containerConfigurator->extension('framework', [ + 'validation' => [ + 'not_compromised_password' => false, + ], + ]); + } }; diff --git a/symfony/validator/4.3/manifest.json b/symfony/validator/5.3/manifest.json index 57f78dc..84521db 100644 --- a/symfony/validator/4.3/manifest.json +++ b/symfony/validator/5.3/manifest.json @@ -2,5 +2,8 @@ "copy-from-recipe": { "config/": "%CONFIG_DIR%/" }, - "aliases": ["validation"] + "aliases": ["validation"], + "conflict": { + "symfony/framework-bundle": "<5.3" + } } ```

symfony/web-profiler-bundle

3.3 vs 5.3 ```diff 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 @@ -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 @@ -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 @@ +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 @@ -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..fe346be --- /dev/null +++ b/symfony/web-profiler-bundle/5.3/config/routes/web_profiler.php @@ -0,0 +1,14 @@ +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 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" } } ```

symfony/webpack-encore-bundle

1.0 vs 1.6 ```diff diff --git a/symfony/webpack-encore-bundle/1.6/config/packages/test/webpack_encore.php b/symfony/webpack-encore-bundle/1.6/config/packages/test/webpack_encore.php new file mode 100644 index 0000000..e69de29 ```
1.6 vs 1.9 ```diff diff --git a/symfony/webpack-encore-bundle/1.6/assets/controllers/hello_controller.js b/symfony/webpack-encore-bundle/1.9/assets/controllers/hello_controller.js index 8c79f65..e847027 100644 --- a/symfony/webpack-encore-bundle/1.6/assets/controllers/hello_controller.js +++ b/symfony/webpack-encore-bundle/1.9/assets/controllers/hello_controller.js @@ -1,4 +1,4 @@ -import { Controller } from 'stimulus'; +import { Controller } from '@hotwired/stimulus'; /* * This is an example Stimulus controller! diff --git a/symfony/webpack-encore-bundle/1.6/config/packages/assets.php b/symfony/webpack-encore-bundle/1.6/config/packages/assets.php deleted file mode 100644 index 1b1ce1e..0000000 --- a/symfony/webpack-encore-bundle/1.6/config/packages/assets.php +++ /dev/null @@ -1,13 +0,0 @@ -extension('framework', [ - 'assets' => [ - 'json_manifest_path' => '%kernel.project_dir%/public/build/manifest.json', - ], - ]); -}; diff --git a/symfony/webpack-encore-bundle/1.6/config/packages/prod/webpack_encore.php b/symfony/webpack-encore-bundle/1.6/config/packages/prod/webpack_encore.php deleted file mode 100644 index e69de29..0000000 diff --git a/symfony/webpack-encore-bundle/1.6/config/packages/test/webpack_encore.php b/symfony/webpack-encore-bundle/1.6/config/packages/test/webpack_encore.php deleted file mode 100644 index e69de29..0000000 diff --git a/symfony/webpack-encore-bundle/1.6/config/packages/webpack_encore.php b/symfony/webpack-encore-bundle/1.9/config/packages/webpack_encore.php index acb6760..903c669 100644 --- a/symfony/webpack-encore-bundle/1.6/config/packages/webpack_encore.php +++ b/symfony/webpack-encore-bundle/1.9/config/packages/webpack_encore.php @@ -7,5 +7,14 @@ use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigura return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->extension('webpack_encore', [ 'output_path' => '%kernel.project_dir%/public/build', + 'script_attributes' => [ + 'defer' => true, + ], + ]); + + $containerConfigurator->extension('framework', [ + 'assets' => [ + 'json_manifest_path' => '%kernel.project_dir%/public/build/manifest.json', + ], ]); }; diff --git a/symfony/webpack-encore-bundle/1.6/package.json b/symfony/webpack-encore-bundle/1.9/package.json index ba0e4f4..813010a 100644 --- a/symfony/webpack-encore-bundle/1.6/package.json +++ b/symfony/webpack-encore-bundle/1.9/package.json @@ -1,10 +1,10 @@ { "devDependencies": { - "@symfony/stimulus-bridge": "^2.0.0", - "@symfony/webpack-encore": "^1.0.0", + "@hotwired/stimulus": "^3.0.0", + "@symfony/stimulus-bridge": "^3.0.0", + "@symfony/webpack-encore": "^1.7.0", "core-js": "^3.0.0", "regenerator-runtime": "^0.13.2", - "stimulus": "^2.0.0", "webpack-notifier": "^1.6.0" }, "license": "UNLICENSED", diff --git a/symfony/webpack-encore-bundle/1.9/post-install.txt b/symfony/webpack-encore-bundle/1.9/post-install.txt new file mode 100644 index 0000000..6169d37 --- /dev/null +++ b/symfony/webpack-encore-bundle/1.9/post-install.txt @@ -0,0 +1,5 @@ + * Install Yarn and run yarn install + + * Uncomment the Twig helpers in templates/base.html.twig (they may be already) + + * Start the development server: yarn encore dev-server ```
1.9 vs 1.10 ```diff diff --git a/symfony/webpack-encore-bundle/1.9/manifest.json b/symfony/webpack-encore-bundle/1.10/manifest.json index 84ab396..a2728ca 100644 --- a/symfony/webpack-encore-bundle/1.9/manifest.json +++ b/symfony/webpack-encore-bundle/1.10/manifest.json @@ -14,5 +14,8 @@ "/%PUBLIC_DIR%/build/", "npm-debug.log", "yarn-error.log" - ] + ], + "conflict": { + "symfony/framework-bundle": "<5.4" + } } diff --git a/symfony/webpack-encore-bundle/1.9/package.json b/symfony/webpack-encore-bundle/1.10/package.json index 813010a..058d070 100644 --- a/symfony/webpack-encore-bundle/1.9/package.json +++ b/symfony/webpack-encore-bundle/1.10/package.json @@ -1,11 +1,11 @@ { "devDependencies": { "@hotwired/stimulus": "^3.0.0", - "@symfony/stimulus-bridge": "^3.0.0", - "@symfony/webpack-encore": "^1.7.0", - "core-js": "^3.0.0", - "regenerator-runtime": "^0.13.2", - "webpack-notifier": "^1.6.0" + "@symfony/stimulus-bridge": "^3.2.0", + "@symfony/webpack-encore": "^3.0.0", + "core-js": "^3.23.0", + "regenerator-runtime": "^0.13.9", + "webpack-notifier": "^1.15.0" }, "license": "UNLICENSED", "private": true, diff --git a/symfony/webpack-encore-bundle/1.9/post-install.txt b/symfony/webpack-encore-bundle/1.10/post-install.txt index 6169d37..e53f05d 100644 --- a/symfony/webpack-encore-bundle/1.9/post-install.txt +++ b/symfony/webpack-encore-bundle/1.10/post-install.txt @@ -1,5 +1,3 @@ * Install Yarn and run yarn install - * Uncomment the Twig helpers in templates/base.html.twig (they may be already) - * Start the development server: yarn encore dev-server ```

zenstruck/foundry

1.9 vs 1.10 ```diff 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 @@ -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 1ca5a4f..0000000 --- a/zenstruck/foundry/1.9/config/packages/test/zenstruck_foundry.php +++ /dev/null @@ -1,9 +0,0 @@ -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 @@ +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"] } ```
alexander-schranz commented 2 years ago

Big Thank you to @TomasVotruba seems like we did solve all config-transformers issues. The converts looks good.

I even did now test out the website-skeleton with:

    "extra": {
        "symfony": {
            "allow-contrib": false,
            "require": "6.1.*",
            "endpoint": [
                "https://raw.githubusercontent.com/alexander-schranz/symfony-recipes-php/flex/pull-1/index.json",
                "flex://defaults"
            ]
        }
    }
Complete `website-skeleton`: ```json { "name": "symfony/website-skeleton", "type": "project", "license": "MIT", "description": "A skeleton to start a new Symfony website", "minimum-stability": "stable", "prefer-stable": true, "require": { "php": ">=8.1", "ext-ctype": "*", "ext-iconv": "*", "doctrine/annotations": "^1.0", "doctrine/doctrine-bundle": "^2.7", "doctrine/doctrine-migrations-bundle": "^3.2", "doctrine/orm": "^2.13", "phpdocumentor/reflection-docblock": "^5.3", "phpstan/phpdoc-parser": "^1.7", "sensio/framework-extra-bundle": "^6.1", "symfony/asset": "6.1.*", "symfony/console": "*", "symfony/doctrine-messenger": "6.1.*", "symfony/dotenv": "*", "symfony/expression-language": "6.1.*", "symfony/flex": "^2", "symfony/form": "6.1.*", "symfony/framework-bundle": "*", "symfony/http-client": "6.1.*", "symfony/intl": "6.1.*", "symfony/mailer": "6.1.*", "symfony/mime": "6.1.*", "symfony/monolog-bundle": "^3.0", "symfony/notifier": "6.1.*", "symfony/process": "6.1.*", "symfony/property-access": "6.1.*", "symfony/property-info": "6.1.*", "symfony/proxy-manager-bridge": "6.1.*", "symfony/runtime": "*", "symfony/security-bundle": "6.1.*", "symfony/serializer": "6.1.*", "symfony/string": "6.1.*", "symfony/translation": "6.1.*", "symfony/twig-bundle": "6.1.*", "symfony/validator": "6.1.*", "symfony/web-link": "6.1.*", "symfony/yaml": "*", "twig/extra-bundle": "^2.12|^3.0", "twig/twig": "^2.12|^3.0" }, "require-dev": { "phpunit/phpunit": "^9.5", "symfony/browser-kit": "6.1.*", "symfony/css-selector": "6.1.*", "symfony/debug-bundle": "6.1.*", "symfony/maker-bundle": "^1.0", "symfony/phpunit-bridge": "^6.1", "symfony/stopwatch": "6.1.*", "symfony/web-profiler-bundle": "6.1.*" }, "config": { "allow-plugins": { "composer/package-versions-deprecated": true, "symfony/flex": true, "symfony/runtime": true }, "optimize-autoloader": true, "preferred-install": { "*": "dist" }, "sort-packages": true }, "autoload": { "psr-4": { "App\\": "src/" } }, "autoload-dev": { "psr-4": { "App\\Tests\\": "tests/" } }, "replace": { "symfony/polyfill-ctype": "*", "symfony/polyfill-iconv": "*", "symfony/polyfill-php72": "*", "symfony/polyfill-php73": "*", "symfony/polyfill-php74": "*", "symfony/polyfill-php80": "*", "symfony/polyfill-php81": "*" }, "scripts": { "auto-scripts": { "cache:clear": "symfony-cmd", "assets:install %PUBLIC_DIR%": "symfony-cmd" }, "post-install-cmd": [ "@auto-scripts" ], "post-update-cmd": [ "@auto-scripts" ] }, "conflict": { "symfony/symfony": "*" }, "extra": { "symfony": { "allow-contrib": false, "require": "6.1.*", "endpoint": [ "https://raw.githubusercontent.com/alexander-schranz/symfony-recipes-php/flex/pull-1/index.json", "flex://defaults" ] } } } ```

And we successfull have a skeleton with .php config files:

Bildschirmfoto 2022-08-13 um 17 55 21

And it works 🎉 :

Bildschirmfoto 2022-08-13 um 17 52 04