У меня есть текущая PHP-база данных, написанная в процедурном (главным образом) стиле, который наш клиент использует в течение некоторого времени. Мы хотим «задушить» (как в концепции Strangler Application) этот код и добавить Zend Framework, чтобы включить новую разработку.Внедрение приложения Strangler с ZendFramework
Теперь у меня есть настраиваемый маршрут, который маршрутизирует весь «старый» HTTP-запрос одному контроллеру (например, Strangler Controller), и этот контроллер будет использовать cURL, чтобы новый запрос передал этот запрос в «старое» приложение (это «старое» приложение, код также использует .htaccess для выполнения некоторых перезаписываний ...) и выборки, которые я отправляю непосредственно в браузер пользователя. Это делается потому, что старый код уже выполняет всю обработку и шаблоны и такие материалы (сеанс ...).
Следующим шагом будет внедрение ZendSessions, чтобы мы могли зеркально отражать работу пользователей в обоих приложениях.
После написания некоторых новых функций с использованием ZF MVC мы отправим эти новые запросы на новый код ... Надеемся, все это закончится удалением всего старого кода в течение некоторого разумного временного окна.
Что я спрашиваю:
«Есть ли кто-нибудь уже делал это, и если да, то какими советы с принимая этот шаг и реализации?»
Что вы подразумеваете под «разработкой проекта в целом»? Планируется продолжение разработки для этого нового приложения, но сначала необходимо выполнить базовую задачу (маршрутизация, сеансы, orm) ... Я бы взял эти 3 как «целые», после чего мы могли бы использовать и оба приложения в то время как разработка новых функций и замена текущих ... Или? – f13o
Мой способ будет разрабатывать необходимые функции, а затем проверять их, а затем размещать в Интернете. Я предполагаю, что вы планировали использовать что-то вроде: переписывать запросы на новые URL-адреса и перенаправлять их на старое приложение, затем добавлять некоторые функции в новое, тестировать их, а затем переносить в прямое приложение, сохраняя при этом другие функции в старом приложении и постоянно добавляя больше возможностей. Вы встретитесь с огромными проблемами, обеспечивающими согласованность данных, и хороший дизайн будет перенесен на частичную совместимость. У вас не может быть хорошего дизайна, когда часть веб-сайта новая, а часть старая, пока они используют одни и те же данные. –
И «старый дизайн» оказался ошибочным в 99% случаев –