2013-03-16 2 views
3

У нас есть довольно большое приложение, которое содержит около 8 модулей (больших модулей), написанных с использованием Zend framework 1, и было разработано более 3 лет несколькими разработчиками. Также он ежедневно получает большой трафик. Мы используем Amozon s3, Sphinx, Memcache и некоторые другие сторонние сервисы.Перенос на Zend Framework 2 из Zend Framework 1

Это хорошая идея перенести его в рамки Zend 2? Поскольку, когда мы кратко рассмотрели документ, кажется, что Zend framework 2 была переписана полностью. Поэтому мы считаем, что мы не сможем легко переносить заявку, а не переписывать приложение в соответствии с ZF 2.

Ценные идеи будут высоко оценены.

+0

Есть ли необходимость в необходимости * миграции? – deceze

+0

Это долгосрочное приложение. Поэтому мы должны убедиться, что что-то не станет устаревшим. – Shaolin

+0

Почему кто-то голосовал, чтобы закрыть этот вопрос? Я не думаю, что я попросил что-то дублировать. Наша потребность несколько специфична – Shaolin

ответ

6

Вы правы, что ZF2 это совершенно другое животное. На самом деле, по-другому, нет единого плана миграции/стратегии для всех.

Однако, я недавно совершил аналогичную миграцию. Это довольно сложное линейное бизнес-приложение, написанное в течение примерно 18 месяцев, с множеством разнообразных функций. Основными драйверами для решения стали улучшения в модулях и системах событий.

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

Предполагая, что вам понравился ZF1, хорошей новостью является то, что ZF2 - это гораздо лучшая структура (в качестве рамки). Компоненты ModuleManager, EventManager, Di и ServiceManager (и общие материалы, связанные с MVC) действительно великолепны, как только вы их забудете. Плохая новость в том, что они являются полным отходом от ZF1. Таким образом, вы, по крайней мере, подписываетесь, чтобы полностью пересмотреть свою рассылку и маршрутизацию, вы попрощаетесь с Zend_Registry (ServiceManager/ServiceLocator - огромное улучшение).

Другая полезная новость заключается в том, что вы почти наверняка можете хранить все старые компоненты ZF1-типа до тех пор, пока они вам понадобятся. Поэтому, если вы полагаетесь на Zend_Cache, Zend_Log, Zend_Mail и т. Д., Немного поиграть с конфигурациями автозагрузчиков должно сделать это возможным.

Что я предлагаю, так это то, что если вы сделаете решительный шаг, подумайте о том, чтобы перенести сначала на ZF2-as-a-framework, а затем позаботиться о библиотеке ZF2-as-a-component.

Если вы придерживаетесь парадигмы толстой модели/тощего контроллера, возможно, просто достаточно просто заменить элементы контроллера, Front-Controller, Zend_Application. После того, как вы это сделаете, вы сможете работать над удалением зависимостей с компонентами ZF1 по мере того, как позволяет время. В моем случае этого было не так много, поскольку все было довольно хорошо учтено и завернуто (так, например, переход от Zend_Cache к Zend \ Cache был тривиальным)

Наконец, вы должны знать, что View -слойный материал (в основном, связанный с хелпером материал) тоже отличается. Если у вас есть куча сложных вещей, связанных с просмотром (частичные, пользовательские view-helers и т. Д.) Повсюду, вам нужно либо переписать их, либо найти способ использования старого материала Zend_View в ZF2, чтобы вы могли мигрировать по частям. Я действительно не занимался этим, потому что наши интерфейсы были довольно простыми, и мы восприняли это как возможность пересмотреть пользовательский интерфейс.

Только мои $ 0,02, но я надеюсь, что это поможет.

+0

Спасибо, это очень полезно – Shaolin