recipes-contrib icon indicating copy to clipboard operation
recipes-contrib copied to clipboard

Use when@env for jms serializer configuration

Open alexander-schranz opened this issue 2 years ago • 2 comments

Q A
License MIT
Packagist jms/serializer-bundle

/cc @goetas

Symfony switch to use when@env everywhere in there core bundle configuraitons.

This will update jms serializer to use als when@prod and when@dev instead of splitting it into seperate files.

alexander-schranz avatar Apr 22 '22 10:04 alexander-schranz

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/symfony/recipes-contrib/flex/pull-1396/index.json
    # On Windows
    SET SYMFONY_ENDPOINT=https://raw.githubusercontent.com/symfony/recipes-contrib/flex/pull-1396/index.json
    
  2. Install the package(s) related to this recipe:

    composer req 'symfony/flex:^1.16'
    composer req 'jms/serializer-bundle:^4.0'
    
  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.

jms/serializer-bundle

2.0 vs 3.0
diff --git a/jms/serializer-bundle/2.0/config/packages/dev/jms_serializer.yaml b/jms/serializer-bundle/3.0/config/packages/dev/jms_serializer.yaml
index 353e4602..f9460410 100644
--- a/jms/serializer-bundle/2.0/config/packages/dev/jms_serializer.yaml
+++ b/jms/serializer-bundle/3.0/config/packages/dev/jms_serializer.yaml
@@ -1,6 +1,6 @@
 jms_serializer:
     visitors:
-        json:
+        json_serialization:
             options:
                 - JSON_PRETTY_PRINT
                 - JSON_UNESCAPED_SLASHES
diff --git a/jms/serializer-bundle/2.0/config/packages/jms_serializer.yaml b/jms/serializer-bundle/3.0/config/packages/jms_serializer.yaml
index bab42dae..d25fa039 100644
--- a/jms/serializer-bundle/2.0/config/packages/jms_serializer.yaml
+++ b/jms/serializer-bundle/3.0/config/packages/jms_serializer.yaml
@@ -1,6 +1,6 @@
 jms_serializer:
     visitors:
-        xml:
+        xml_serialization:
             format_output: '%kernel.debug%'
 #    metadata:
 #        auto_detection: false
diff --git a/jms/serializer-bundle/2.0/config/packages/prod/jms_serializer.yaml b/jms/serializer-bundle/3.0/config/packages/prod/jms_serializer.yaml
index bc97faf1..89c86c89 100644
--- a/jms/serializer-bundle/2.0/config/packages/prod/jms_serializer.yaml
+++ b/jms/serializer-bundle/3.0/config/packages/prod/jms_serializer.yaml
@@ -1,6 +1,6 @@
 jms_serializer:
     visitors:
-        json:
+        json_serialization:
             options:
                 - JSON_UNESCAPED_SLASHES
                 - JSON_PRESERVE_ZERO_FRACTION
3.0 vs 4.0
diff --git a/jms/serializer-bundle/3.0/config/packages/dev/jms_serializer.yaml b/jms/serializer-bundle/3.0/config/packages/dev/jms_serializer.yaml
deleted file mode 100644
index f9460410..00000000
--- a/jms/serializer-bundle/3.0/config/packages/dev/jms_serializer.yaml
+++ /dev/null
@@ -1,7 +0,0 @@
-jms_serializer:
-    visitors:
-        json_serialization:
-            options:
-                - JSON_PRETTY_PRINT
-                - JSON_UNESCAPED_SLASHES
-                - JSON_PRESERVE_ZERO_FRACTION
diff --git a/jms/serializer-bundle/3.0/config/packages/jms_serializer.yaml b/jms/serializer-bundle/4.0/config/packages/jms_serializer.yaml
index d25fa039..99766743 100644
--- a/jms/serializer-bundle/3.0/config/packages/jms_serializer.yaml
+++ b/jms/serializer-bundle/4.0/config/packages/jms_serializer.yaml
@@ -11,3 +11,20 @@ jms_serializer:
 #            another-name:
 #                namespace_prefix: "My\\BarBundle"
 #                path: "@MyBarBundle/Resources/config/serializer"
+
+when@prod:
+    jms_serializer:
+        visitors:
+            json_serialization:
+                options:
+                    - JSON_UNESCAPED_SLASHES
+                    - JSON_PRESERVE_ZERO_FRACTION
+
+when@dev:
+    jms_serializer:
+        visitors:
+            json_serialization:
+                options:
+                    - JSON_PRETTY_PRINT
+                    - JSON_UNESCAPED_SLASHES
+                    - JSON_PRESERVE_ZERO_FRACTION
diff --git a/jms/serializer-bundle/3.0/config/packages/prod/jms_serializer.yaml b/jms/serializer-bundle/3.0/config/packages/prod/jms_serializer.yaml
deleted file mode 100644
index 89c86c89..00000000
--- a/jms/serializer-bundle/3.0/config/packages/prod/jms_serializer.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-jms_serializer:
-    visitors:
-        json_serialization:
-            options:
-                - JSON_UNESCAPED_SLASHES
-                - JSON_PRESERVE_ZERO_FRACTION

github-actions[bot] avatar Apr 22 '22 10:04 github-actions[bot]

if this is the new standard for defining multi env configs, looks good to me :+1:

goetas avatar Apr 25 '22 11:04 goetas

4.4 reached its EOL now.

fabpot avatar Dec 15 '22 07:12 fabpot