Изначально я создавал свой проект на версии symfony 2.0 без vendors (standard edition). Все зависимости были установлены через
php bin/vendors install
Проект находился в git-репозитории.
Сразу оговорка — на момент написания статьи версия symfony 2.1 находилась в стадии бета-тестирования.
Тем не менее, основная тенденция уже была понятна и значительных изменений в АПИ не предвиделось.
Одно из ключевых нововведений в symfony 2.1 — использование Composer.
На вебсайте фреймворка Symfony можно найти описание процесса создания нового проекта, но нет информации как обновить существующий.
Итак, начнем-с.
Изначально я попытался просто скопировать содержимое файла composer.json, находящегося в директории фреймворка Symnofy на github, и выполнить команду
php composer.phar update
но там нет всех зависимостей, необходимых для нормального функционирования проекта.
Потому я просто решил создать новый «пустой» проект:
php composer.phar create-project symfony/framework-standard-edition path/
в отдельной ветке git-репозитория и потом перенести изменения из ветки с версией symfony-2.0.
Признаюсь, что пришлось порешать конфликты в файлах apps/AppKernel.php, файлах config.yml, security.yml и других.
Но это не было слишком сложным заданием.
Также необходимо проапгрейдить все дополнительные bundle, которые вы используете до соответствующих версий под symfony-2.1
К примеру, для FOSUserBundle (https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md#installation)
{
"require": {
"friendsofsymfony/user-bundle": "*"
}
}
и далее выполнить команду
php composer.phar update
Таже необходимо сделать изменения согласно этой инструкции в файлах форм и других местах. Тут уже дело персональное — смотря кто какие фичи использовал в своем проекте.
Таким образом, после всех проделанных манипуляций проект запустился успешно.
Из видимых изменений — добавили красивостей к web-debug-toolbar — появились тултипы со сводной информацией по каждому из разделов, которые показываются при наведении мышью на соответствующую иконку.
П.С.: Вот на днях встретил другой вариант апгрейда до symfony-2.1: http://buildthedamnproduct.com/upgrading-symfony-to-21-10415