
Symfony 2.3.0
Мы все долго этого ждали, многие из нас работали последние 4 года что бы это произошло. Сегодня, Symfony 2.3.0 доступна и это первый релиз с долгосрочной поддержкой(LTS) для Symfony 2.
Я очень счастлив, что мы достигли этой точки в жизни Фреймворка. Спасибо вам, что сделали это возможным!
Что это значит? С момента введения новой политики релизов, стандартная версия с восьми-месячной поддержкой Symfony выходит каждые пол года. Каждые два года мы выпускаем версию LTS с поддержкой в течении трех лет.
Это даёт нам лучшее двух разных миров: маленькие команды и agile компании могут использовать лучшее из новых возможностей, обновляясь каждые пол года; большие команды и традиционные компании могут полагаться на релиз в течении трех лет и иметь ещё один год что бы обновиться до следующего LTS релиза.
И 2.3.0 это наш первый релиз долгосрочной поддержки. Мы, сообщество, будем поддерживать его следующие три года (до мая 2016).
Цифры
Традиционно, я хочу показать некоторые факты в цифрах. На Symfony 2.3.0 нам понадобилось всего три месяца вместо шести. В итоге, 2.3 включает в себя 437 пулл-реквеста, 1,260 коммитов, отправленных 50ю разработчиками. В документацию вошли 839 коммита от 44 авторов.
1,260 коммитов за 3 месяца — это примерно 14 коммитов каждый день. 437 пулл-реквеста — 5 пулл-реквестов сливалось с основной веткой за сутки. Это новый рекорд!
Возможности
Что насчет самых интересных изменений? Давайте суммируем всё то что я писал в этом блоге последние пару месяцев:
- 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;
- и другие мелки улучшения.
Обновление
Обновление с 2.2 до 2.3 должно произойти безболезнено.
Если вы используете стандартную версию (Symfony Standard Edition), вы должны учесть, что некоторые бандлы были удалены из-за проблем с лицензией. Начиная с ветки 2.3 весь код находится под MIT-like лицензией, а так же все зависимости.
composer.json
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"
}
}
}
Вся обратная совместимость, которая была реализована в предыдущей версии была удаленна, проверьте ещё раз свой код и ознакомьтесь с файлом UPGRADE.
Установка
Если вы начинаете новый проект с помощью Symfony 2.3 у вас есть несколько вариантов:
- Создайте новый проект посредством Composer (рекомендовано)
$ php composer.phar create-project symfony/framework-standard-edition somewhere/ 2.3.0
- Скачайте архив для Symfony Standard Edition
Если вы используете некоторые компоненты Symfony в вашем новом приложении, используйте версию 2.3.0 или ветку 2.3:
- С помощью Composer packages
- С помощью Github downloads: https://github.com/symfony/{COMPONENT_NAME}/archive/v2.3.0.zip;