Требуется усилие, чтобы перейти с 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?
- Я схожу с ума, думая о том, чтобы эффективно портировать большой веб-сайт всего за месяц (работая только неполный рабочий день?) - то есть подход "большого взрыва" - самый мудрый / единственный подход?
3 ответа
Я не хочу "чинить это", если оно не сломано.
Не надо!
Разве я схожу с ума, думая о портировании большого веб-сайта в течение чуть более месяца (работая только неполный рабочий день?)
Да, вы!:)
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, когда будете готовы.
Ответ @Arms фантастический. Несмотря на то, что ответ был принят, я решил добавить несколько своих мыслей к обсуждению.
Я начал работу над разработкой личного проекта около года назад. Я выбрал Symfony 1.4, потому что Symfony 2 не был в стабильной фазе, и я уже был экспертом в Symfony 1.4.
После работы в течение года в свободное время (я работаю полный рабочий день), и это то, что у меня есть (и это все еще растет, около 60% сделано):
- 70000 строк 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, чтобы быть уверенными, что у вас не будет головной боли.
Удачи.
Symfony 1.4 не является устаревшим кодом. Он по-прежнему полностью поддерживается командой Symfony и имеет трехлетнее обещание поддержки, которое заканчивается в конце ноября 2012 года.