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


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

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

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

Author: greg0ire, 2012-05-22

2 answers

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

 8
Author: greg0ire, 2012-05-22 16:37:37

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

Сначала вам нужно изучить и изучить некоторые вещи:

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

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

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

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

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

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

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

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

 5
Author: cvaldemar, 2012-05-22 12:17:34