首页 > 解决方案 > cakephp 从 2.10 升级到 3.x

问题描述

我需要将项目从 2.10 升级到 3.x。

我正在使用官方迁移工具https://book.cakephp.org/3/en/upgrade-tool.html,使用以下命令:

bin/cake upgrade all

即使这做了一些更改,它也会以无法使用的安装结束,并出现各种致命错误。

我知道需要采取手动步骤,但我无法在任何地方找到它们的文档。

我的问题是:

  1. 是否有关于所需步骤的指南?

  2. 该工具实际上并未将版本更新到 3.0。这是我需要做的如下。这个对吗?我应该在运行迁移工具之前还是之后更新?

    $ 作曲家需要 cakephp/cakephp:^3.0

  3. 我是否也需要运行该bin/cake upgrade skeleton命令?Fe 这将创建 /src 和 /webroot 文件。我应该先运行这个吗?

  4. 最后是否需要进行任何清理,因为该工具也会离开旧结构。

标签: cakephpmigrationupgradecakephp-3.xcakephp-2.x

解决方案


在这个宇宙中可能没有任何 2.x 应用程序可以自动升级为工作的 3.x 应用程序,您仍然需要手动修复和迁移大部分应用程序代码和配置,升级工具真的只是可以为您完成一些重复性任务的助手。

强烈建议您首先熟悉 CakePHP 3.x,直到您有信心使用它创建可靠的工作应用程序,这将帮助您解决迁移过程中可能出现的许多问题,并将提高您迁移的应用程序的质量!

话虽如此:

  1. 我不知道任何详尽的指南(这并不意味着没有),但是您可以很容易地找到人们写他们的升级经历,例如https://www.dereuromark.de/2015/06/ 06/cakephp-3-0-migration-notes

  2. 该工具不会更新 CakePHP 依赖项,不会。它希望您自己编写应用程序,并且您自己升级依赖项,它不可能解决升级核心时可能出现的依赖项冲突。

    理想情况下,首先或最后升级依赖项并不重要,但为了安全起见,您应该运行升级工具后进行。

  3. 您不必运行skeleton任务,如果您知道自己在做什么,也可以手动从 3.x 应用程序框架中复制文件 - 无论如何,这些文件是必需的,毕竟应该添加它们其他任务已运行,您不希望任何任务更改这些文件的代码。请注意,该skeleton任务将覆盖您的一些文件,例如bootstrap.phproutes.php

  4. 是的,您必须自己清理可能的残留物。


推荐阅读