Symfony 2.3.0, the first LTS, is now available
June 3, 2013 • Published by Fabien Potencier
We were all waiting for it and many of us have been working hard for the last four years to make it happen. Today, Symfony 2.3.0 is available and this is the first long-term support release for Symfony version 2.
I'm so happy that we were able to achieve this important milestone in the life of the framework. THANK YOU for making it possible.
What does it mean? Since the introduction of a more formal release process, a new standard version of Symfony is released every six month and it is maintained for eight months. But every two years, we mark a release as being a long term support release. The big difference is that it is maintained for a three years period.
That gives us the best of two different worlds: small teams and agile companies can benefit from the latest features by upgrading every six months (they have two months to upgrade); large teams and traditional companies can standardize on a release for three years and they have an additional year to migrate to the next long term support release.
And 2.3.0 is our first long term support release. We, the community, are going to maintain it for the next three years (until May 2016).
Numbers
Traditionally, I like to give some numbers about releases. Here are some facts for 2.3. The Symfony 2.3.0 release was a bit special as we only had three months instead of six. Anyway, 2.3 is made of 437 pull requests containing 1,260 commits submitted by 50 developers for the code; documentation enjoyed 839 commits by 44 authors.
1,260 commits on a 3 month period means that, on average, 14 commits were pushed every single day. 437 pull requests means almost 5 pull requests merged per day. That's a new record!
Features
What about the most interesting changes? Let's recap what I've written about in the Live on the edge section of this blog during the last couple of months:
- DomCrawler: Schema-relative URLs;
- DomCrawler: HTML5 forms;
- Console: Events in the Console Component;
- Console: Progress helper enhancements;
- Console: TableHelper;
- Console: Console output in more Formats;
- Console: More Verbosity Levels;
- HttpFoundation: Use Sub-Networks to configure Trusted Proxies;
- Validator: New validators;
- Validator: Comparison Validators;
- Form: Buttons support in Forms;
- Dependency Injection: Lazy Services;
- Dependency Injection: Synchronized services;
- CssSelector: CSS Selector refactoring;
- Intl: Internationalization refactoring;
- Debug: Fatal Error Logging;
- Standard Edition: Interactive Management of the parameters.yml File;
- and many other small enhancements.
Symfony 2.3 also comes with two new components and one new bridge:
- The Debug component;
- The Intl component.
- The proxy manager bridge.
Upgrading
Upgrading from 2.2 to 2.3 should be painless.
If you are using the Symfony Standard Edition, you should notice that some bundles were removed to avoid license issues. As of 2.3, all the code in the Standard Edition and its dependencies is under a MIT-like license. Here is the diff for the `composer.json` file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
diff --git a/composer.json b/composer.json
index c2d7588..5705d76 100644
--- a/composer.json
+++ b/composer.json
@@ -1,32 +1,35 @@
{
"name": "symfony/framework-standard-edition",
+ "license": "MIT",
+ "type": "project",
"description": "The \"Symfony Standard Edition\" distribution",
"autoload": {
"psr-0": { "": "src/" }
},
"require": {
"php": ">=5.3.3",
- "symfony/symfony": "2.2.*",
- "doctrine/orm": "~2.2,>=2.2.3",
+ "symfony/symfony": "2.3.*",
+ "doctrine/orm": ">=2.2.3,<2.4-dev",
"doctrine/doctrine-bundle": "1.2.*",
"twig/extensions": "1.0.*",
- "symfony/assetic-bundle": "2.1.*",
- "symfony/swiftmailer-bundle": "2.2.*",
- "symfony/monolog-bundle": "2.2.*",
- "sensio/distribution-bundle": "2.2.*",
- "sensio/framework-extra-bundle": "2.2.*",
- "sensio/generator-bundle": "2.2.*",
- "jms/security-extra-bundle": "1.4.*",
- "jms/di-extra-bundle": "1.3.*"
+ "symfony/assetic-bundle": "2.3.*",
+ "symfony/swiftmailer-bundle": "2.3.*",
+ "symfony/monolog-bundle": "2.3.*",
+ "sensio/distribution-bundle": "2.3.*",
+ "sensio/framework-extra-bundle": "2.3.*",
+ "sensio/generator-bundle": "2.3.*",
+ "incenteev/composer-parameter-handler": "~2.0"
},
"scripts": {
"post-install-cmd": [
+ "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
],
"post-update-cmd": [
+ "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
"Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
@@ -36,12 +39,15 @@
"config": {
"bin-dir": "bin"
},
- "minimum-stability": "alpha",
+ "minimum-stability": "stable",
"extra": {
"symfony-app-dir": "app",
"symfony-web-dir": "web",
+ "incenteev-parameters": {
+ "file": "app/config/parameters.yml"
+ },
"branch-alias": {
- "dev-master": "2.2-dev"
+ "dev-master": "2.3-dev"
}
}
}
All the backward compatibility layers from previous versions have been removed, so it's time to read again all UPGRADE files and check that you've migrated all your code. For changes specific to the 2.3 release, follow the instructions in the UPGRADE document. If you started your project with the Symfony Standard Edition, you might also want to read the UPGRADE-2.3.md file.
Installing
If you are starting a new project on Symfony 2.3, based on the full-stack framework, you have several options:
Create a new project via Composer (recommended):
1
$ php composer.phar create-project symfony/framework-standard-edition somewhere/ 2.3.0``
- Download an archive for the Symfony Standard Edition;
If you are using some of the Symfony components in your new application, just use the `2.3.0` version or the `2.3` branch:
- Via Composer packages;
- Via Github downloads: https://github.com/symfony/{COMPONENT_NAME}/archive/v2.3.0.zip.
Let's celebrate! And remember that we should now focus on stability over features.
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.
Comments are closed.
To ensure that comments stay relevant, they are closed for old posts.
Now, I see jms/security-extra-bundle has been dropped. While keeping licenses clean is a good thing, what about projects relying heavily on features like @PreAuthorize, @Secure and so on? There doesn't seem to be an alternative to these features in the base Symfony bundles, so we feel a bit left alone here... Or is it just a "symbolic" move of Symfony to remove it from their official composer file for licensing purposes?
I honestly think that having a LTS version in Symfony2 will definitely help in big companies adopting it
So, let's celebrate!
Thanks to the whole Symfony community for an awesome product!
Migration already done with the magic `php composer.phar update` (and some minor fixes)
https://www.youtube.com/watch?v=K6OQ0r5EVWA
Thanks for your hard work!
Congratulations to all team and contributors. Thanks for your very hard work.
Thanks and thumbs up for the team.
what should i put?
In 2.3 you now have to add the Debug::enable call otherwise debug is not enabled.
So coming from a 2.2 project to 2.3 you need to check your app_dev.php files against the new ones as they won't be changed by composer of course.