Skip to content

[zenstruck/foundry] enable auto refresh with lazy objects in 2.7 #1441

New issue

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

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

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 28, 2025

Conversation

nikophil
Copy link
Contributor

@nikophil nikophil commented Jul 27, 2025

Q A
License MIT
Doc issue/PR zenstruck/foundry#943

ping @kbond

@symfony-recipes-bot symfony-recipes-bot enabled auto-merge (squash) July 27, 2025 07:19
Copy link

github-actions bot commented Jul 27, 2025

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

    composer req symfony/flex
    composer req 'zenstruck/foundry:^2.7'
  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.

zenstruck/foundry

1.9 vs 1.10
diff --git a/zenstruck/foundry/1.9/config/packages/dev/zenstruck_foundry.yaml b/zenstruck/foundry/1.9/config/packages/dev/zenstruck_foundry.yaml
deleted file mode 100644
index 655840c..0000000
--- a/zenstruck/foundry/1.9/config/packages/dev/zenstruck_foundry.yaml
+++ /dev/null
@@ -1,4 +0,0 @@
-# See full configuration: https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#full-default-bundle-configuration
-zenstruck_foundry:
-    # Whether to auto-refresh proxies by default (https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#auto-refresh)
-    auto_refresh_proxies: true
diff --git a/zenstruck/foundry/1.9/config/packages/test/zenstruck_foundry.yaml b/zenstruck/foundry/1.9/config/packages/test/zenstruck_foundry.yaml
deleted file mode 100644
index 3bf6547..0000000
--- a/zenstruck/foundry/1.9/config/packages/test/zenstruck_foundry.yaml
+++ /dev/null
@@ -1,5 +0,0 @@
-# Unless you want different configuration for test/dev environments,
-# add configuration to config/packages/dev/zenstruck_foundry.yml
-# and this will be synced to your test environment.
-imports:
-    - { resource: ../dev/zenstruck_foundry.yaml }
diff --git a/zenstruck/foundry/1.10/config/packages/zenstruck_foundry.yaml b/zenstruck/foundry/1.10/config/packages/zenstruck_foundry.yaml
new file mode 100644
index 0000000..0657d2c
--- /dev/null
+++ b/zenstruck/foundry/1.10/config/packages/zenstruck_foundry.yaml
@@ -0,0 +1,7 @@
+when@dev: &dev
+    # See full configuration: https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#full-default-bundle-configuration
+    zenstruck_foundry:
+        # Whether to auto-refresh proxies by default (https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#auto-refresh)
+        auto_refresh_proxies: true
+
+when@test: *dev
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"]
 }
1.10 vs 2.0
diff --git a/zenstruck/foundry/1.10/config/packages/zenstruck_foundry.yaml b/zenstruck/foundry/2.0/config/packages/zenstruck_foundry.yaml
index 0657d2c..e3ed04b 100644
--- a/zenstruck/foundry/1.10/config/packages/zenstruck_foundry.yaml
+++ b/zenstruck/foundry/2.0/config/packages/zenstruck_foundry.yaml
@@ -1,7 +1,5 @@
 when@dev: &dev
     # See full configuration: https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#full-default-bundle-configuration
     zenstruck_foundry:
-        # Whether to auto-refresh proxies by default (https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#auto-refresh)
-        auto_refresh_proxies: true
 
 when@test: *dev
2.0 vs 2.5
diff --git a/zenstruck/foundry/2.0/config/packages/zenstruck_foundry.yaml b/zenstruck/foundry/2.5/config/packages/zenstruck_foundry.yaml
index e3ed04b..20592c5 100644
--- a/zenstruck/foundry/2.0/config/packages/zenstruck_foundry.yaml
+++ b/zenstruck/foundry/2.5/config/packages/zenstruck_foundry.yaml
@@ -1,5 +1,8 @@
 when@dev: &dev
     # See full configuration: https://symfony.com/bundles/ZenstruckFoundryBundle/current/index.html#full-default-bundle-configuration
     zenstruck_foundry:
+        persistence:
+            # Flush only once per call of `PersistentObjectFactory::create()`
+            flush_once: true
 
 when@test: *dev
diff --git a/zenstruck/foundry/2.0/manifest.json b/zenstruck/foundry/2.5/manifest.json
index 050fabb..979f891 100644
--- a/zenstruck/foundry/2.0/manifest.json
+++ b/zenstruck/foundry/2.5/manifest.json
@@ -6,7 +6,19 @@
         "Zenstruck\\Foundry\\ZenstruckFoundryBundle": ["dev", "test"]
     },
     "conflict": {
-        "symfony/framework-bundle": "<5.3"
+        "doctrine/persistence": "<2.0",
+        "symfony/flex": "<1.23.0 || >=2.0.0,<2.8.0",
+        "symfony/framework-bundle": "<6.4"
     },
-    "aliases": ["foundry"]
+    "aliases": ["foundry"],
+    "add-lines": [
+        {
+            "file": "phpunit.dist.xml",
+            "content": "        <bootstrap class=\"Zenstruck\\Foundry\\PHPUnit\\FoundryExtension\" />",
+            "position": "after_target",
+            "target": "<extensions>",
+            "requires": "phpunit/phpunit:>=10",
+            "warn_if_missing": false
+        }
+    ]
 }
2.5 vs 2.6
diff --git a/zenstruck/foundry/2.5/manifest.json b/zenstruck/foundry/2.6/manifest.json
index 979f891..44f5d32 100644
--- a/zenstruck/foundry/2.5/manifest.json
+++ b/zenstruck/foundry/2.6/manifest.json
@@ -1,6 +1,7 @@
 {
     "copy-from-recipe": {
-        "config/": "%CONFIG_DIR%/"
+        "config/": "%CONFIG_DIR%/",
+        "src/": "%SRC_DIR%/"
     },
     "bundles": {
         "Zenstruck\\Foundry\\ZenstruckFoundryBundle": ["dev", "test"]
diff --git a/zenstruck/foundry/2.6/src/Story/AppStory.php b/zenstruck/foundry/2.6/src/Story/AppStory.php
new file mode 100644
index 0000000..5cc5657
--- /dev/null
+++ b/zenstruck/foundry/2.6/src/Story/AppStory.php
@@ -0,0 +1,15 @@
+<?php
+
+namespace App\Story;
+
+use Zenstruck\Foundry\Attribute\AsFixture;
+use Zenstruck\Foundry\Story;
+
+#[AsFixture(name: 'main')]
+final class AppStory extends Story
+{
+    public function build(): void
+    {
+        // SomeFactory::createOne();
+    }
+}
2.6 vs 2.7
diff --git a/zenstruck/foundry/2.6/manifest.json b/zenstruck/foundry/2.7/manifest.json
index 44f5d32..d96ab7e 100644
--- a/zenstruck/foundry/2.6/manifest.json
+++ b/zenstruck/foundry/2.7/manifest.json
@@ -20,6 +20,14 @@
             "target": "<extensions>",
             "requires": "phpunit/phpunit:>=10",
             "warn_if_missing": false
+        },
+        {
+            "file": "config/packages/zenstruck_foundry.yaml",
+            "content": "        enable_auto_refresh_with_lazy_objects: true",
+            "position": "after_target",
+            "target": "zenstruck_foundry:",
+            "requires": "php:>=8.4",
+            "warn_if_missing": false
         }
     ]
 }

@nikophil
Copy link
Contributor Author

not sure how I can fix the CI (and even, if I should fix this) 🤔

@Kocal
Copy link
Member

Kocal commented Jul 27, 2025

@nikophil
Copy link
Contributor Author

nikophil commented Jul 27, 2025

yeah, I used gh pr create -f, that's why it didn't used any template 🤷

thanks! fixed :)

@Kocal
Copy link
Member

Kocal commented Jul 27, 2025

I think you have to re-run the check, you can do that by force-rebasing and push again

auto-merge was automatically disabled July 27, 2025 19:34

Head branch was pushed to by a user without write access

@symfony-recipes-bot symfony-recipes-bot enabled auto-merge (squash) July 27, 2025 19:34
@symfony-recipes-bot symfony-recipes-bot merged commit 7e7747e into symfony:main Jul 28, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants