Skip to content

4.0.0

Choose a tag to compare

@lunetics lunetics released this 19 Aug 22:13
· 6 commits to master since this release
e9d4b95

Complete rebuild of the bundle around deterministic, request-scoped timezone resolution.

Requires PHP ^8.3 with Symfony ^7.4.13, or PHP ^8.4 with Symfony ^8.1.

Breaking: the guesser, provider, event and validator APIs of the 2.1/3.0 line are removed without a compatibility layer — see UPGRADE-4.0.md.

  • Ordered, explicitly tagged resolvers with traceable results replace the guesser chain; every external timezone passes TimezoneId validation.
  • Only direct user preferences are persisted (session or signed HMAC cookie); GeoIP, locale and default results stay request-local.
  • Request-scoped provider plus a bounded execution context instead of mutating PHP's global timezone — safe for Messenger workers.
  • Opt-in browser sync (POST JSON, CSRF on by default), optional user/OIDC/MaxMind/Twig/Form/Messenger/profiler/console adapters.

Note: this release ships a documentation error — it points Symfony 6.4 users at the legacy 3.0 line, which cannot be installed there. Fixed in 4.0.1.

Full changelog: CHANGELOG.md