Skip to content

Update: Bump the bundle to Symfony 8 / PHP 8.4 (Case 212955) - #27

Merged
janopae merged 1 commit into
masterfrom
212955-symfony-8
Jul 31, 2026
Merged

Update: Bump the bundle to Symfony 8 / PHP 8.4 (Case 212955)#27
janopae merged 1 commit into
masterfrom
212955-symfony-8

Conversation

@janopae

@janopae janopae commented Jul 31, 2026

Copy link
Copy Markdown
Member

Widen all symfony/* constraints to ^8.0, raise the PHP floor to ^8.4 (Symfony 8 requires PHP >= 8.4.1), and raise the CI PHP version to 8.4. Bump doctrine/doctrine-bundle to ^3.0 — v2.x has no Symfony 8 support.

Six additional code fixes were needed to stay green on Symfony 8:

  • WebfactoryNewsletterRegistrationExtension::load(): add missing : void return type (Symfony 8 made ExtensionInterface::load() strict).
  • Callback constraint: array-key constructor syntax (['callback' => ...]) was removed; pass the callable directly instead.
  • Choice constraint: array options constructor was removed; use named arguments (choices:, multiple:, min:).
  • Doctrine test config: auto_generate_proxy_classes removed from DoctrineBundle 3's ORM configuration tree.
  • AppClassTemplatesTest: call $config->enableNativeLazyObjects(true) — Symfony 8 dropped the LazyGhostTrait that Doctrine ORM's old file-based proxy system relied on; PHP 8.4 native lazy objects replace it.
  • All four Foundry factories: PersistentProxyObjectFactory → PersistentObjectFactory — the proxy mechanism is gone in Symfony 8.

Widen all symfony/* constraints to ^8.0, raise the PHP floor to ^8.4
(Symfony 8 requires PHP >= 8.4.1), and raise the CI PHP version to 8.4.
Bump doctrine/doctrine-bundle to ^3.0 — v2.x has no Symfony 8 support.

Six additional code fixes were needed to stay green on Symfony 8:

- WebfactoryNewsletterRegistrationExtension::load(): add missing `: void`
  return type (Symfony 8 made ExtensionInterface::load() strict).
- Callback constraint: array-key constructor syntax (['callback' => ...])
  was removed; pass the callable directly instead.
- Choice constraint: array options constructor was removed; use named
  arguments (choices:, multiple:, min:).
- Doctrine test config: auto_generate_proxy_classes removed from
  DoctrineBundle 3's ORM configuration tree.
- AppClassTemplatesTest: call $config->enableNativeLazyObjects(true) —
  Symfony 8 dropped the LazyGhostTrait that Doctrine ORM's old file-based
  proxy system relied on; PHP 8.4 native lazy objects replace it.
- All four Foundry factories: PersistentProxyObjectFactory →
  PersistentObjectFactory — the proxy mechanism is gone in Symfony 8.
@janopae janopae changed the title Update: Bump the bundle to Symfony 8 / PHP 8.4 Update: Bump the bundle to Symfony 8 / PHP 8.4 (Case 212955) Jul 31, 2026
@janopae
janopae merged commit 1c8c7a1 into master Jul 31, 2026
3 checks passed
@janopae
janopae deleted the 212955-symfony-8 branch July 31, 2026 08:22
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.

1 participant