Портирование сайта с Symfony 1.4 на 2.0

У меня есть огромный сайт, который был написан (очень плохо) в Symfony 1.4, меня попросили внести некоторые существенные изменения в навигационный поток, добавить некоторые функции и так далее... учитывая усилия, Мне было интересно, будет ли лучше принять радикальное решение перенести весь сайт на Symfony 2.0, но я не уверен, насколько это сложно.

Кто-нибудь когда-либо делал это раньше?

Есть ли у вас какие-либо предложения для шаблонов, учебников, документов или чего-то еще?

2 ответа

Решение

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

Вот как я бы это сделал:

Вы должны сначала изучить и изучить некоторые вещи:

  • Основы HTTP
  • Пространства имен PHP, которые интенсивно используются
  • Документация Symfony2
  • Документация Symfony2
  • Документация Symfony2
  • PHPUnit документация

Затем, когда вы освоитесь с Symfony2, вам нужно выяснить, что можно использовать в старом проекте:

Модели, бизнес логика? Вы использовали Doctrine в Symfony? Если да, посмотрите, как перенести ваши сущности в Doctrine2, и узнайте о различиях. Если бы вы использовали Propel, я бы посмотрел на переключение на Doctrine2 и не использовал бы PropelBundle, по крайней мере, пока вы не привыкнете к Symfony2. Вы можете найти лучшую документацию и пример кода для Doctrine2.

Вам также необходимо преобразовать ваши старые классы помощников в службы Symfony2.

Просмотры? Symfony2 использует Twig в качестве движка шаблонов, но вы можете использовать чистый PHP.

Контроллеры? Это должно быть похоже на Symfony. Поток Symfony2 совпадает с потоком HTTP, то есть вы получаете объект Request и должны повторно вызвать объект Response.

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

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

Другие вопросы по тегам