Обновление от Symfony 2.0 до 2.3
У меня уже есть проект, который находится в Symfony 2.0.10
. Но теперь мне нужно обновить его до Symfony 2.3
. Я знаю, что нужно изменить какой-то код на компиляцию с последней версией. Есть ли какая-нибудь команда для обновления? Или что такое точная процедура обновления? Есть ли доступный документ?
Edit:
Я помещаю файл Symfony 2.3
composer.json
, а при выполнении php composer.phar update
я получил эту ошибку.
Problem 1
- symfony/symfony v2.3.1 requires symfony/icu >=1.0,<2.0 -> no matching package found.
- symfony/symfony v2.3.0 requires symfony/icu >=1.0,<2.0 -> no matching package found.
- Installation request for symfony/symfony 2.3.* -> satisfiable by symfony/symfony[v2.3.0, v2.3.1].
Изменить 2:
Сначала я получил эту ошибку:
[InvalidArgumentException]
The dist file "app/config/parameters.yml.dist" does not exist. Check your dist-file config or create it.
поэтому я создал файл parameters.yml.dist
.
Теперь я получаю
PHP Fatal error: Class 'Symfony\Component\ClassLoader\UniversalClassLoader' not found in /var/www/git/sample/app/autoload.php on line 6
Script Sensio\Bundle\DistributionBundle\Composer\ScriptHandler::buildBootstrap handling the post-update-cmd event terminated with an exception
[RuntimeException]
An error occurred when generating the bootstrap file.
Ответы
Ответ 1
Информация об обновлении
Прочитайте руководства по обновлению в репозиторий symfony/symfony github:
В репозитории также есть списки изменений:
Резервное копирование проекта!
Обновление с помощью композитора
Получите composer и поставьте стандартную версию Symfony 2.3 composer.json в корневой каталог проекта.
Теперь запустите composer update
с вашим патчем проекта как рабочим каталогом.
- > Вы столкнетесь с некоторыми исключениями из-за нарушения изменений. Google поможет решить эти проблемы:)
Личный опыт
В моих предыдущих проектах наиболее заметный разрыв bc от 2.0 до 2.1 был этот, связанный с построителем форм, потому что мне пришлось обновлять каждая форма.
До (2.0)
use Symfony\Component\Form\FormBuilder;
public function buildForm(FormBuilder $builder, array $options)
После (2.1+)
use Symfony\Component\Form\FormBuilderInterface;
public function buildForm(FormBuilderInterface $builder, array $options)
Ответ 2
Обновление в целом простое, так как вам нужно только обновить ограничения версии в вашем composer.json в соответствии с стандартным распространением и выпуском
php composer.phar update
Но у 2.3 есть некоторые обратные разрывы совместимости. Поэтому внимательно прочитайте все документы обновления для необходимых изменений кода.