Миграция с Cake 1.3 на 2.0 и более поздние версии: перенести существующие или использовать только для новых?

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

Мои вопросы:

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

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

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

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


person Dave    schedule 08.06.2011    source источник
comment
Кстати, я понимаю, что это довольно открытый / нетехнический вопрос. Но я также думаю, что есть и другие, которые задаются тем же вопросом, и я благодарен всем за любые мысли по этой теме.   -  person Dave    schedule 08.06.2011
comment
Одна вещь с CakePHP 2 заключается в том, что они меняют соглашения об именах файлов, поэтому многие файлы придется переименовывать!   -  person Dunhamzzz    schedule 10.06.2011
comment
@Dunhamzzz - я видел это. Я думаю, что это изменение к лучшему, но — да — больше работы по переходу. К счастью, ссылок на файл все равно не должно быть, так что... это помогает :)   -  person Dave    schedule 10.06.2011


Ответы (3)


Я перенес несколько сайтов с 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

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

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

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

person bjudson    schedule 09.06.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
person dhofstet    schedule 08.06.2011

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

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

А пока все, молодцы!

person lcapra    schedule 08.09.2011