Подтвердить что ты не робот

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

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

Мои вопросы:

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

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

  • Этот вопрос трудно ответить, поскольку он зависит от размера и сложности ваших проектов. "Большие" релизы (от 1.1 → 1.2, 1.2 → 1.3, 1.3 → 2.0) обычно ломаются, и вам приходится тратить деньги на некоторые миграции. С другой стороны, миграция между "меньшими" версиями (например, с 1.3.9 по 1.3.10) обычно бывает легкой, часто это просто означает замену папки торта. В обоих случаях полезно иметь тесты.
  • Я переношу проекты, которые активно поддерживаются.
  • Вы можете найти версию CakePHP в cake/config/config.php

Ответ 3

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

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

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