Требуются усилия для перехода с Symfony 1.4 на Symfony 2.0 - PullRequest
11 голосов
/ 16 ноября 2011

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

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

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

  1. Сколько из того, что я уже знаю из 1.4, применимо к 2.0?
  2. Существуют ли какие-нибудь учебные пособия по заданию или заданию, в которых показано, как создать целое приложение с использованием инфраструктуры sf?
  3. Разве я схожу с ума, думая о портировании большого веб-сайта в течение чуть более месяца (работая только неполный рабочий день?) - т. Е. Подход "большого взрыва" - самый мудрый / единственный подход?

Ответы [ 3 ]

22 голосов
/ 17 ноября 2011

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

Нет!

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

Да, вы! :)

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, когда будете готовы.

9 голосов
/ 17 ноября 2011

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

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

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

  1. 70000 строк php-кода (Doctrine-запросы, действия, шаблоны)
  2. 10000 строк пользовательского кода JavaScript
  3. 3000 строк YAML

Например, мой файл schema.yml состоит из 872 строк и состоит из 62 определений таблиц.

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

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

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

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

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

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

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

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

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

Удачи.

4 голосов
/ 17 ноября 2011

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

...