Миграция с Cake 1.3 на 2.0 и выше - перенос существующего или использование только для нового? - PullRequest
12 голосов
/ 08 июня 2011

Я близок к завершению моего первого веб-сайта, управляемого CakePHP, и только что увидел, что они уже работают над CakePHP 2.0 (пока не стабильной версией).

Мои вопросы:

  • Неужели это невероятно много времени для перехода на новую версию CakePHP (когда она становится «стабильной» версией)? Я знаю, что у них есть руководства по миграции, но - я никогда раньше не использовал фреймворк, поэтому мне никогда не приходилось ничего переносить.

  • Мигрируете ли вы свой код для существующих проектов или оставляете его как есть и используете новую стабильную версию только для будущих проектов?

  • Где я могу найти версию CakePHP, которую я сейчас установил? Я просмотрел файлы LICENSE и VERSION, но не могу найти в них установленную / текущую версию.

Эти вопросы кажутся простыми, но я очень ценю любые мысли / советы - поиск в Google просто вызывает страницы с инструкциями по переносу, а не плюсы / минусы ... и т. Д.

Ответы [ 3 ]

18 голосов
/ 09 июня 2011

Я перенес несколько сайтов с CakePHP 1.2 на 1.3.По моему опыту, это занимает 2-3 часа на сайтах, которые имеют 5-10 контроллеров и не имеют пользовательских плагинов и т. Д. Я нахожу, что мне обычно нужно изменить синтаксис только для нескольких вызовов функций, и когда я выясняю, какие из них,это просто вопрос поиска / замены по всему сайту.Конечно, это может быть больше проблемой при переходе с 1.3 на 2.0, но я не понимаю, что это будет особенно радикальное изменение API.

ОБНОВЛЕНИЕ: Сейчас я нахожусь в процессе перехода на бета-версию CakePHP 2.0 и подумал, что мне следует обновить его, так как я считаю, что обновления более обширны и масштабны, чемЯ предположил, когда я написал это.Руководство по миграции здесь: https://github.com/cakephp/docs/blob/master/en/appendices/2-0-migration-guide.rst

ДРУГОЕ ОБНОВЛЕНИЕ: Поскольку люди, кажется, находят это полезным, я просто подумал, что хотел бы указать, что Cake теперь услужливо предоставляет оболочку обновления, которая делает некоторыеработы для вас.Обратите внимание, что хотя в документации сказано, что она выполнит «большую часть» работы, я обнаружил, что все еще довольно много вызовов функций и т. Д., Которые необходимо будет обновить вручную (см. Руководство по миграции).http://book2.cakephp.org/en/console-and-shells/upgrade-shell.html

Как сказал dhofstet, все будет зависеть от размера и сложности вашего сайта.

Независимо от того, производите ли вы обновление, обычно это решающий вызов, но иногда это необходимо (например, Cake 1.2 имеет некоторый код, который сломается, если ваш хост обновится до PHP 5.3).У вас наверняка не будет проблем с безопасностью, которые были бы у старой установки WordPress, Drupal и т. Д.Я видел заметное увеличение скорости при обновлении Cake, поэтому в зависимости от ситуации это может стоить проблем только для этого (Cake 2.0 окончательно отказывается от поддержки PHP 4).Посмотрите на заметки о выпуске и посмотрите, есть ли что-то, что привлекает вас в новой версии.

Чтобы увидеть вашу версию, в файле cake/VERSION.txt посмотрите на самую последнюю строку.Это легко пропустить, но это должен быть просто номер, например 1.3.8.

1 голос
/ 08 июня 2011
  1. На этот вопрос сложно ответить, так как он зависит от размера и сложности вашего проекта (-ов).«Большие» выпуски (от 1.1 -> 1.2, 1.2 -> 1.3, 1.3 -> 2.0) обычно ломают вещи, и поэтому вам приходится планировать некоторые работы по миграции.Миграция между «меньшими» выпусками (например, с 1.3.9 до 1.3.10), с другой стороны, обычно проста, часто это просто означает замену папки «торт».В обоих случаях полезно иметь тесты.
  2. Миграция проектов, которые активно поддерживаются.
  3. Вы можете найти версию CakePHP в cake/config/config.php
0 голосов
/ 08 сентября 2011

Я переношу приложение 1.3 »2.0rc1 прямо сейчас, и у меня не возникло больших проблем.

  1. Мне пришлось изменить имена папок / файлов, например.app_controller.php »Controller / AppController.php
  2. Перейдите по ссылке миграции (ссылка tmp) http://book2.cakephp.org/en/appendices/2-0-migration-guide.html
  3. плагины / компоненты / .. из различных источников не будут работать (минус, дляпункт 1)
  4. Чтобы обновить код (который в моем случае не требовался, так как приложение работало хорошо), я запекла фиктивную таблицу и посмотрела на различия в коде. Это хорошая отправная точка
  5. Аутентификация / Авторизация изменена в некоторых конфигурациях, но требует нескольких изменений.
  6. Деревья все еще работают
  7. Acl нет.Но я совершенно уверен, что это моя вина.

Пока все, хорошая работа!

...