2009-06-12 2 views
1

У меня есть текущая PHP-база данных, написанная в процедурном (главным образом) стиле, который наш клиент использует в течение некоторого времени. Мы хотим «задушить» (как в концепции Strangler Application) этот код и добавить Zend Framework, чтобы включить новую разработку.Внедрение приложения Strangler с ZendFramework

Теперь у меня есть настраиваемый маршрут, который маршрутизирует весь «старый» HTTP-запрос одному контроллеру (например, Strangler Controller), и этот контроллер будет использовать cURL, чтобы новый запрос передал этот запрос в «старое» приложение (это «старое» приложение, код также использует .htaccess для выполнения некоторых перезаписываний ...) и выборки, которые я отправляю непосредственно в браузер пользователя. Это делается потому, что старый код уже выполняет всю обработку и шаблоны и такие материалы (сеанс ...).

Следующим шагом будет внедрение ZendSessions, чтобы мы могли зеркально отражать работу пользователей в обоих приложениях.

После написания некоторых новых функций с использованием ZF MVC мы отправим эти новые запросы на новый код ... Надеемся, все это закончится удалением всего старого кода в течение некоторого разумного временного окна.

Что я спрашиваю:

«Есть ли кто-нибудь уже делал это, и если да, то какими советы с принимая этот шаг и реализации?»

ответ

0

Вы определенно не должны делать ничего похожего на «половину пути» :) Вы должны разработать проект целиком и протестировать его. Затем отправьте его в прямом эфире :) Мы сделали это с банковской интрасети, и он работал нормально.

+0

Что вы подразумеваете под «разработкой проекта в целом»? Планируется продолжение разработки для этого нового приложения, но сначала необходимо выполнить базовую задачу (маршрутизация, сеансы, orm) ... Я бы взял эти 3 как «целые», после чего мы могли бы использовать и оба приложения в то время как разработка новых функций и замена текущих ... Или? – f13o

+1

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

+1

И «старый дизайн» оказался ошибочным в 99% случаев –