Какие изменения нужно сделать в коде, чтобы перейти с CakePHP 3 на CakePHP 4?

Как я могу обновить проект с CakePHP 3 до CakePHP 4?

Я попытался установить последний пакет CakePHP 3.8 и преобразовать его в Cakephp 4 в соответствии с руководством по обновлению CakePHP 4.

Он не обновляется должным образом, отображается ошибка, как показано ниже

Missing Template::Error: The view for PagesController::display() was not found.
Confirm you have created the file: "Pages/welcome.ctp" in one of the following paths: /var/www/html/cake38/templates/Pages/home.ctp

1 ответ

Вам не нужно беспокоиться об этих двух предупреждениях, пока вы не обновитесь до 4.x (запустите composer outdated, он покажет вам брошенные пакеты). Если они все еще существуют, то проверьте свойcomposer.lock file и найдите имена пакетов, чтобы выяснить, для каких пакетов они требуются, а затем посмотрите, есть ли обновленные версии этих пакетов, которые вы можете использовать.

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

  1. обновите свои зависимости композитора
  2. обновите файлы / структуру скелета приложения в соответствии с целевой версией (конфигурация, двоичные файлы, оболочки и т. д., см. https://github.com/cakephp/app/tree/3.8.0)
  3. запустите свой набор тестов и исправьте сбои.

Как только вы перейдете на 3.8 и все исправите, следуйте руководству по обновлению 4.0, то есть:

  1. запустить инструмент обновления
  2. затем снова обновите свои зависимости, запустите свой набор тестов и исправьте сбои.

Обычно сообщения об устаревании как бы говорят вам, как что-то исправить, т.е. они говорят вам, что использовать вместо устаревшего кода. Если у вас есть проблема с некоторыми конкретными устаревшими версиями, которые вы не знаете, как исправить, я бы посоветовал вам подробнее остановиться на них. Для быстрой помощи вам, вероятно, лучше спросить об этом в канале CakePHP Slack/IRC.

Для .ctp файлы, если проблема все еще существует после обновления до 4.x, выполните поиск в коде приложения, а также в коде поставщика для строки ctp Чтобы выяснить, где еще могут быть ссылки на это, это не проблема, для которой есть общее решение.

Другие вопросы по тегам