Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

PHP 8.4 and 8.5 for the older Symfony stack: the framework forks

This page is for teams that keep an Exponential Platform 1.x / 2.5 or Nexus 1.x project alive on a current PHP. For the Exponential 6 kernel itself, see PHP 8 support of the Exponential 6 kernel.

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/features/6.0/platform-php85-framework-forks.md

On this page

PHP 8.4 and 8.5 for the older Symfony stack: the framework forks

This page is for teams that keep an Exponential Platform 1.x / 2.5 or Nexus 1.x project alive on a current PHP. For the Exponential 6 kernel itself, see PHP 8 support of the Exponential 6 kernel.

Repositories: se7enxweb/symfony, se7enxweb/twig, se7enxweb/doctrine-bundle (repository DoctrineBundle), se7enxweb/doctrine-dbal-schema, se7enxweb/php-parser (repository PHP-Parser), plus the platform packages ezpublish-kernel, ezplatform-kernel, ezplatform-http-cache, ezplatform-user, ezplatform-richtext that received PHP constraints.

What it is

Exponential Platform 1.x / 2.5 and Nexus 1.x run on the Symfony 3.4 generation of the framework. Upstream stopped maintaining it long before PHP 8.4 and 8.5 appeared, so these stacks stop with fatal errors or flood the log with deprecations on a current PHP. The forks listed here are small, targeted patches that make the old stack work on PHP 8.2 to 8.5. They are installed automatically: each fork declares the upstream package under replace, so Composer uses the fork wherever the upstream name is required.

Why it helps

  • You can run an older Exponential Platform site on a supported PHP version instead of staying on an unsupported one.
  • Your logs show your own warnings, not thousands of framework deprecations.
  • No change to your project code: the fork has the same namespaces and the same API.

What each fork fixes

se7enxweb/symfony (Symfony 3.4 monolith)

DateChangeEffect
2025-08-24ErrorHandler, LazyLoadingValueHolderGenerator, ArrayNode, ExceptionCaster adapted for PHP 8.2 / 8.4the debug error handler, lazy services, configuration arrays and exception dumping run on PHP 8.x
2026-01-28return types on the VarDumper Data class; WebProfilerExtension uses a method reference instead of a closuredump() and the profiler toolbar work on PHP 8
2026-01-29explicit nullable types and a ReflectionProperty deprecation fix in ErrorHandlerno deprecation notices from the handler
2026-01-30composer.json requires se7enxweb/twig in place of twig/twigone Twig for the whole stack
2026-02-10PHP 8.5 deprecations in Container and Yaml\Inlineclean container and YAML parsing on 8.5
2026-02-14profiler data collector and Kernel changes needed by Nexus: deprecation statistics are produced and shown more gracefullythe toolbar of a default Nexus install does not fail on deprecations
2026-04-09NativeFileSessionHandler skips its ini_set() calls when a session is already active or headers were sentcache:clear and other CLI commands no longer crash with "An unexpected error has occurred" when the legacy kernel has started a session before the handler is built

se7enxweb/twig (Twig 2.x)

DateChangeEffect
2025-08-24NameExpression fix for PHP 8.2+templates compile on PHP 8.2 and later
2026-01-30package replaces twig/twig; constraint and version raised to 2.16.2Composer installs the fork
2026-04-09CallExpression::reflectCallable() detects the PHP 8.5 closure name form {closure:Class::method():N}the compiler no longer emits an invalid dynamic method call for closures; template functions defined as closures work on PHP 8.5
2026-05-11explicit nullable parameter types in 36 files (Node, Error, Sandbox, Extension, Loader, Template, Parser)no "implicitly nullable parameter" deprecation on PHP 8.4 and 8.5

Smaller forks

ForkWhat changed
se7enxweb/doctrine-bundle (1.5 line)vendor name replaced, replace of doctrine/doctrine-bundle and the Twig require rule (2026-01-30)
se7enxweb/doctrine-dbal-schemaPHP 8.1 support (2025-07-01), replace shim for the upstream name (2026-04-12)
se7enxweb/php-parser (0.9 line)PHP 8 token compatibility: qualified name tokens expanded back to the sequences the old grammar expects; match, enum, readonly mapped to identifiers; nullsafe operator mapped to ->; attributes and PHP 7.0+ return types and nullable markers stripped (2026-05-11), plus replace of nikic/php-parser 0.9.5
se7enxweb/ezpublish-kernelPHP 8.2 / 8.3 support, closure-based Twig functions replaced by named methods for PHP 8.5 (2026-01-30), cache configuration blocks that were missing (2026-02-09, 2026-02-10)

Check what is installed

composer show -i | grep -E "se7enxweb/(symfony|twig|doctrine-bundle|php-parser)"
composer why twig/twig          # shows the fork that satisfies the upstream name
php -v

(Read-only commands; they change nothing.)

Limits

  • These are patches to keep an old stack alive, not a Symfony upgrade. New projects should start on Platform v5 (Symfony 7.4, PHP 8.3+).
  • se7enxweb/twig follows the Twig 2.16 line; the v5 stack uses Twig 3.x from upstream.

Become an Exponential Partner

Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x