2016-11-16 3 views
0

Я столкнулся с проблемой рефакторинга и добавления новых функций в устаревшее веб-приложение PHP, оно состоит из 788 php-скриптов, у которых нет папки структура, они в большинстве сценариев, которые содержат код JavaScript, PHP, HTML и CSS в одном файле, сохраняются и используют данные из трех разных типов баз данных, MSSQL, MYSQL и DB2, там аутентификация основана на сеансе, большинство из них это базовый php, и есть также некоторые страницы, которые используют чистые html и ajax для связи с php-скриптами, не говоря уже о том, что нет определений классов, по большей части даже не функций.Каков наилучший способ модернизировать или реорганизовать устаревшее приложение PHP

Моя цель состоит в том, чтобы перевести это в более удобное для пользователя приложение, которое, скорее всего, будет использоваться с компонентами symfony, с которыми я знаком, представляет абстракцию HTTP-запроса, маршрутизацию и, по возможности, MVC, также реорганизует код в используемые классы и реализует автоматическую загрузку с использованием композитор для использования сторонних библиотек.

Откровенно говоря, единственный вариант, на мой взгляд, - все это бросить и начать новый проект.

+1

«Честно говоря, единственный вариант, на мой взгляд, - все это бросить и начать новый проект». звучит как план для меня –

+1

Я просто хотел быть уверенным, что не может быть другого жизнеспособного варианта, это боль, даже пытаясь его прочитать. –

+2

ну нет волшебной функции «fix shit php». –

ответ

1

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

Одним из решений может стать внедрение проекта Symfony и начать рефакторинг модуля по модулю, но вы будете в основном сталкиваются со следующими проблемами: • Интеграции

  • веб-сервера: как запустить приложение Symfony наряду с унаследованными приложениями (с настраиваемой Nginx местом, например)
  • Share сессией между 2 приложениями, но Symfony уже есть что-то bridge a legacy Application with Symfony Sessions,
  • Иметь последовательный веб-дизайн, который много работает, но не то, что технически трудно
  • Я думаю, что многие другие проблемы
+0

Я действительно знаю о бизнес-недостатках перезаписи, одним из самых больших недостатков, с которыми я сталкиваюсь, является использование сеансового моста, чтобы не заканчивать сеанс в устаревшем приложении, иначе он не работает должным образом для меня, я в настоящее время рефакторинг шаг за шагом и добавление немного большей стабильности, поскольку он планирует перенести его на другой сервер, и есть много системных зависимых путей, а старый mysql_connect будет заменен PDO, мой план немного поработал над этим, сделайте его менее склонным к разваливаясь, а затем построить что-то новое, как только у меня появится больше информации о бизнесе. –

+0

Я бы сказал, что проект небольшой, но основная база данных, возможно, придется перестроить, так как во всем мире используются неиспользуемые поля и таблицы. –

+0

Каждый раз, когда я сталкиваюсь с той же проблемой, я закончил переписывать модуль устаревшего кода модулем. У вас есть другие варианты, кроме интеграции SF2 или другой структуры внутри устаревшей кодовой базы: разделение на приложение (frontend/backend), использование микросервиса, создание чистых библиотек. – LFI

Смежные вопросы