Symfony 2.5.0 Beta 1 released

Today we are happy to introduce the first beta of the upcoming Symfony 2.5 version. As we announced a few months ago, Symfony project is currently focused on quality over features and backwards compatibility. That's why this new version is packed with dozens of bugfixes, code cleanups and improvements for each and every Symfony component.

This new Symfony version also takes backwards compatibility to the next level. In addition to being a core value for the project, we've introduced a new Backwards Compatibility Promise for minor Symfony versions.

With 142 commits, 301 modified files, 11,639 additions and 2,204 deletions, Symfony 2.5 is now feature frozen. During the next two months, we'll focus on tweaking these improvements and completing their documentation.

Meanwhile you can read the UPGRADE from 2.4 to 2.5 guide and test, hack and play with Symfony 2.5 code in many different ways:

  • Create a new project via Composer (recommended):
$ php composer.phar create-project symfony/framework-standard-edition somewhere/ 2.5.0-BETA1

What's new in Symfony 2.5ΒΆ

You can view the full changelog from 2.4 to 2.5 BETA 1 on the repository, but we have summarized below the most relevant changes and improvements:

General improvements

  • Added HHVM support for built-in web server (10017)
  • Added named encoders to EncoderFactory to allow different password hashing for each user instance (10005)
  • Added MutableAclProvider::updateUserSecurityIdentity to enable the update of a User's username while keeping its associated ACEs (8650)
  • Added a PSR-4 compatible class loader (10100)
  • Added configuration for additional request formats (9862)
  • Extract KernelTestCase from WebTestCase (9739)
  • Decoupled Twig commands from the Framework (9855)
  • Added support for JSON format in twig:lint command (10064)
  • Added ability to change JSON encoding options (9915)
  • Improved support for Google App Engine (9945)
  • Allowed non alphanumeric chars in object properties (to use expressions like $person->{'@email'}) (9843)
  • Added a simple way to replace a service by keeping a reference to the old one (10600)
  • Allowed giving a callback as an allowedValue to OptionsResolver (8375, 9963)
  • Added Process::disableOutput and Process::enableOutput methods (10425)
  • Added support for is.* methods in GetSetMethodNormalizer (10314)
  • Added a screaming mode to ErrorHandler to silence errors (10466)

Forms and validation improvements

  • Added an option for multiple files upload (8224)
  • Added delete_empty option to allow proper emptyData handling of collections (9773)
  • Added FormErrorBag (9099)
  • Errors now reference the field they were added to and the violation/exception that caused them (9993)
  • ObjectChoiceList now compares choices by their value, if a value path is given (10572)
  • Added Doctrine cache for Validator (9892)
  • Added a new strict email validator (9140)
  • Added a new validator for UUIDs (10291)
  • Replaced the node traversing approach for a recursive one in the Validator (10287)

Console component improvements

  • Added a much better and full-featured progress bar (10356)
  • Added a better way to ask questions to the user (and deprecated the DialogHelper) (10606)
  • Added a better TableHelperand deprecated the old Table (10365)
  • Commands from the container are now loaded after bundles' commands to easily override default commands (10257)
  • Added the possibility to set a different default command for the application (9776)
  • Added a way to set the process title (9780)
  • Added PTY mode in addition to the previous TTY mode and the convenience method mustRun() (8655)
  • Added standalone PSR-3 compliant logger (10194)

Improvements for designers

  • Added ability to set a specific version of the asset in templates (10593)
  • Added a command to list twig functions, filters, globals and tests (9818)

Improvements for translators

  • Added a translation:debug command that can be used to inspect unused/missing messages and compare them with the fallback ones (10368)
  • Added ability to support templates for relative paths to translation files (9852)
  • Added PotFileDumper (9224)

Improvements to make you more productive

  • Moved AcmeDemoBundle to SensioDistributionBundle (643)
  • Added a new config:debug command to dump the current configuration (10165)
  • Enhanced logs display in the web development toolbar (10473)
  • Improved the readability of the collected arrays in the profiler (10352)
  • Added possibility to specify method and host in router:match command (10439)
  • Added a yaml:lint command to validate the syntax of YAML files (9666)
  • Added TraceableEventDispatcher to allow debugging dispatchers (9814)
  • Enhanced the debug component to detect class names case mismatches and to dismiss hard to debug blank pages related to non-catchable and @-silenced fatal errors (10201)
  • Enhanced the error handling and stack trace displaying for catchable PHP errors (10725)
Help the Symfony project!

As with any Open-Source project, contributing code or documentation is the most common way to help, but we also have a wide range of sponsoring opportunities.


The first two links in "General improvements" are broken (extra parenthesis at the end in the href).

Anyway, great improvements over the whole framework!
Loick, thanks for noticing about the link errors. They are fixed now!
I thought that the release was tagged about 14 days ago? Late news?
@Miha, you are right. The post has been published a bit late. Sorry for that!

Apart from this date mismatch, what do you think about the beta improvements?

"Improved config:dump-reference command to dump the current configuration (10165)"

The config:dump-reference hasn't changed, a new command config:debug was added to dump the current configuration.
@Wouter, I've just fixed the description of the 10165 improvement. Thanks for your help!
@Javier: The improvements are nice. I'm using this in a project that will be released sometime in June. I especially like the improvements in the validator component.
Nice and congrats to everyone involved. Thanks for this announcement. New features list is really huge therefore worth checking out and updating. Looking forward to the final release.
Nice way to break down the features.
Good job guys !
Hi, @Javier Added PotFileDumper (9224) is my PR, but it wasn't merged.

Comments are closed.

To ensure that comments stay relevant, they are closed for old posts.