Как я могу перенести Zend Framework 1 на 3

Кто-нибудь, пожалуйста, опишите, насколько сильно архитектура Zend изменилась с версии 1 на 3. Недавно Zend выпустил ZF3, но нет информации о том, как перейти с zf1 на zf3. У меня есть приложение, которое было разработано в zf1, теперь я ищу возможность обновить его до использования PHP 7 power с ZF3. Должен ли я переписать весь код или сколько усилий нужно, чтобы перейти на последнюю версию.

Кроме того, ZF3 утверждал, что в 4 раза быстрее под PHP7. На самом деле это PHP7, который работает быстрее, а не ZF3. Я не уверен, насколько они улучшились по сравнению с фреймворком Laravel, который является одним из лучших фреймворков за последние несколько лет.

Если кто-то использовал ZF3, пожалуйста, поделитесь своим опытом.

7

Решение

Если вы имеете дело с большим приложением, не будет быстрого и безболезненного способа перехода на ZF3. Начиная с маршрутизации и заканчивая сервисами, как практическая, так и теоретическая среда, лежащая в основе Zend Framework 2/3, полностью противоречит первой итерации.

Когда ZF2 был впервые выпущен, я выполнил миграцию с ZF1 на ZF2 (а также с ZF2 на ZF3) в очень большом проекте. В итоге мы использовали инкрементальный подход, требующий незначительных отклонений от базовой библиотеки ZF1 (то есть мы отредактировали несколько классов Zend), что нам очень помогло. Поскольку в сентябре ZF1 достиг EOL, то есть больше не будет никаких исправлений ошибок или каких-либо обновлений, это не должно представлять для вас существенной проблемы.

В посте, который я перечислил ниже, вы найдете описание шагов, которые позволили нам выполнить эту миграцию, а также ссылку на код, предназначенный для частичного объединения ZF1 / ZF2. Поскольку изменение с ZF2 и ZF3 не создало слишком много проблем обратной совместимости, шаги, которые я подробно описал в этом посте, все же должны (в основном) применяться для перехода с ZF1 на ZF3.

Пошаговая миграция с Zend Framework 1 на 2

Вот еще две ссылки, которые вы можете найти полезными. Первая ссылка — руководство по миграции с ZF1 на ZF2, предоставленное Zend. Вторая ссылка — общая документация для Zend Framework. Если компонент был обновлен до версии 3.0 (например, zend-mvc, zend-servicemanager и т. Д.), Он должен содержать руководство по миграции, в котором рассказывается, что изменилось между ZF2 / 3.

6

Другие решения

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

  1. В основном мигрируют из ZF2, а затем мигрируют в ZF3.

  2. Или, если вы просто хотите ускорить PHP7, просто обновитесь до PHP7 и проведите небольшое тестирование, которое может выявить некоторые (но не все) ошибки.

Продолжайте читать для больше …

Сначала перейдите на ZF2

https://framework.zend.com/manual/2.1/en/migration/overview.html

  1. Инструменты для пространства имен вашего кода.
  2. Инструменты для использования Zend Framework 2 в вашем приложении Zend Framework 1.
  3. Стратегии параллельного запуска Zend Framework 2 и Zend Framework 1.
  4. Стратегии, облегчающие миграцию вашего кода, ориентируясь, прежде всего, на четкое разделение логики вашего домена и уровня MVC.
  5. Стратегии миграции слоя MVC.
  6. Стратегии миграции вашего доменного уровня.

Затем перейдите на ZF3:

Zend Framework v2 до v3 был задуман как дополнительное обновление. В прошлом году мы даже предприняли усилия для обеспечения функций прямой совместимости в версиях компонентов версии 2, чтобы пользователи могли подготовить свой код для обновления.

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

https://docs.zendframework.com/tutorials/migration/to-v3/overview/

Я предполагаю, что существует значительное количество поломок из-за значительных изменений из ZF в ZF2.

Но вы можете запустить ZF1 и ZF2 параллельно:

https://framework.zend.com/manual/2.4/en/migration/zf1_zf2_parallel.html

С технической точки зрения абсолютно возможно запускать ZF2 параллельно с ZF1, потому что между именами классов нет конфликта из-за того, что ZF2 использует пространства имен, а ZF1 — нет. Запуск ZF1 и ZF2 параллельно можно использовать в качестве стратегии миграции в проектах, где невозможно или не удобно переносить все приложение с ZF1 на ZF2. Например, вы можете реализовать любые новые функции приложения, используя ZF2, сохраняя при этом оригинальные функции ZF1.

Мне неизвестно, могут ли ZF1 и ZF3 работать параллельно, но, возможно, не невозможно.

Или просто попробуйте с PHP7

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

Вы можете запустить что-то похожее на следующее, чтобы проверить ваш PHP-код на PHP7:

find . -name "*.php" -print0 | xargs -P 8 -n 1 -0 sh -c '/usr/local/Cellar/php70/7.0.0/bin/php -l $0 || true' | grep -v 'No syntax'

Если вы используете Mac, вы можете использовать переключатель версий PHP, установив его с помощью brew.

brew install brew-php-switcher

Возможно, вам придется закомментировать эту строку в вашем httpd.conf:

#LoadModule php5_module libexec/apache2/libphp5.so

затем :

brew install php71

Добавьте эту строку в ваш httpd.conf:

<FilesMatch .php$>
SetHandler application/x-httpd-php
</FilesMatch>

Переключение версий:

brew-php-switcher 71
3

По вопросам рекламы [email protected]