Усилия, необходимые для перехода от Symfony 1.4 к Symfony 2.0

У меня есть сайт, написанный на Symfony 1.4. Это был мой первый веб-сайт symfony, и кривая обучения была немного крутой для меня. Это довольно сложный веб-сайт, и я не хочу его исправлять, если он не сломан.

Сказав это, поскольку sf 1.4 теперь является устаревшим кодом, я в конечном итоге захочу перенести сайт на sf 2.0. по сути, я снова запускаю сайт в начале следующего года, и я хочу знать, могу ли я просто укусить пулю и "портировать" сайт с 1.4 до 2.0 за один раз.

Итак, мне нужно знать ответы на следующие вопросы:

  • Сколько из того, что я уже знаю из 1.4, применимо к 2.0?
  • Есть ли учебники типа jobeet или askeet, которые показывают, как создать все приложение с использованием инфраструктуры sf?
  • Я сошел с ума, думая о том, чтобы портировать большой веб-сайт эффективно всего за месяц (работая только неполный рабочий день?) - т.е. подход "большого взрыва" - самый мудрый/единственный подход?

Ответ 1

Я не хочу "исправлять", если он не сломан.

Не надо!

Я сошел с ума, думая о том, чтобы портировать большой сайт эффективно всего за месяц (работая только неполный рабочий день?)

Да, ты!:)

Symfony2 и symfony 1.4 дикие разные. Мы не говорим о некоторых обновлениях для symfony 1.x, мы говорим о совершенно новой структуре с нуля. Это действительно нравится спрашивать: "Как трудно было бы перейти от Symfony 1.4 к Zend Framework/Kohana/Yii/CakePHP/etc...".

Я переместил проект (на самых ранних этапах) от symfony 1.4 до Symfony2 и обнаружил, что, кроме моего знакомства с шаблоном MVC, не так много (если что-либо) было передано с symfony с 1.4 до 2. Мы говорим о новых структурах каталогов, новых классах, Doctrine 2, (удивительном) контейнере для инъекций зависимостей и т.д.

У Symfony2 есть своя кривая обучения, и хотя архитектура лучше, чем Symfony 1.4, вы будете тратить много времени на пробную и пробную версию и читать документы.

Symfony2 отлично, и я рекомендую его изучить, но делаю это с управляемым шагом. Там есть ряд обучающих программ в Интернете - проверьте их и просмотрите официальные документы и кулинарные книги Symfony2, когда вы будете готовы.

Ответ 2

Ответ

@Arms фантастический. Хотя ответ был принят, я подумал, что добавлю несколько своих мыслей к обсуждению.

Я начал работу над разработкой персонального проекта около года назад. Я выбрал symfony 1.4, потому что Symfony 2 не был в стабильной фазе, и я уже был экспертом в symfony 1.4.

После работы в течение года в свободное время (я работаю полный рабочий день), и это то, что у меня есть (и оно все еще растет, около 60% сделано):

  • 70 000 строк php-кода (запросы, действия, шаблоны Doctrine)
  • 10 000 строк пользовательского кода javascript
  • 3000 строк YAML

Мой файл schema.yml, например, - 872 строки, которые состоят из 62 табличных определений.

Мой файл маршрутизации - 500 строк.

Перемещение определения схемы этого размера на объекты Doctrine2 было бы гигантской задачей. Мне понадобится очень много времени. Если бы мне пришлось переписать то, что я сделал сейчас, на Symfony2. Вероятно, мне понадобится год.

Переход на мою текущую систему аутентификации (sfDoctrineGuard) на реализацию symfony2 также будет большой проблемой. Все мои задачи командной строки, запросы доктрины, шаблоны должны были бы измениться.

На самом деле все должно измениться. Единственное, что останется прежним, - это имя пользователя и пароль базы данных.

Если бы у меня были ресурсы и время, я бы подумал о переходе на Symfony2. Одним из самых больших преимуществ, которые я получаю, является увеличение производительности и лучшая архитектура, предлагаемая Symfony2.

Я работаю с symfony2 на данный момент в своей полной работе, и мне это очень нравится, но есть еще определенные вещи, которые я не уверен, как достичь в symfony2, который я знаю, как делать в symfony 1.

На данный момент переход на Symfony2 для моего проекта - это определенный НЕТ. Я бы хотел, но, как я уже сказал, у меня нет времени или ресурсов, и, кроме того, приложение действительно работает очень хорошо. Все было реорганизовано, и я был осторожен с разработкой, чтобы убедиться, что я не повторяю код.

Кроме того, обслуживание Symfony 1.4 закончится примерно через год.

Если он работает хорошо, не меняйте его. Только измените его, когда у вас есть доступные ресурсы, и вы хорошо осведомлены в Symfony2, чтобы убедиться, что у вас нет головных болей.

Желаем удачи.

Ответ 3

Symfony 1.4 не является устаревшим кодом. Команда по-прежнему полностью поддерживается командой Symfony и имеет 3-летнее обещание поддержки, которое заканчивается в конце ноября 2012 года.