【问题标题】:Migrating from Cake 1.3 to 2.0 and beyond - migrate existing, or only use for new?从 Cake 1.3 迁移到 2.0 及更高版本 - 迁移现有的,还是仅用于新的?
【发布时间】:2011-09-10 21:10:42
【问题描述】:

我的第一个 CakePHP 驱动的网站即将完成,刚刚看到他们已经在开发 CakePHP 2.0(还不是稳定版本)。

我的问题:

  • 迁移到新版本的 CakePHP(当它成为“稳定”版本时)是否非常耗时?我知道他们有迁移指南,但是 - 我以前从未使用过框架,所以我从来不需要迁移任何东西。

  • 您是为现有项目迁移代码,还是保持原样并仅将新的稳定版本用于未来的项目?

  • 在哪里可以找到我目前安装的 CakePHP 版本?我查看了 LICENSE 和 VERSION 文件,但找不到其中列出的已安装/当前版本。

这些似乎是简单的问题,但我非常感谢任何想法/建议 - 在 Google 上搜索此内容只会显示如何迁移页面,而不是优点/缺点......等等。

【问题讨论】:

  • 顺便说一句 - 我意识到这是一个相当开放/非技术性的问题。但我也认为还有其他人对同样的事情有疑问,并且感谢任何人对此主题的任何想法。
  • CakePHP 2 的一个特点是它们正在改变文件名的约定,因此必须重命名很多文件!
  • @Dunhamzzz - 我看到了。我认为这是更好的变化,但是 - 是的 - 在过渡方面需要做更多的工作。幸运的是,无论如何,链接都不应该指向文件,所以......这有帮助:)

标签: cakephp migration cakephp-1.3 database-migration cakephp-2.0


【解决方案1】:

我已经将一些网站从 CakePHP 1.2 迁移到 1.3。根据我的经验,在有 5-10 个控制器且没有自定义插件等的网站上需要 2-3 个小时。我发现我通常只需要更改少数函数调用的语法,当我弄清楚哪些函数调用时,这只是在整个站点上进行查找/替换的问题。当然,从 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 所说,这完全取决于您网站的规模和复杂程度。

您是否升级通常是一个判断调用,但有时您必须这样做(例如,如果您的主机升级到 PHP 5.3,Cake 1.2 中有一些代码会中断)。您当然不会遇到旧的 WordPress、Drupal 等安装会遇到的那种安全问题。我已经看到随着 Cake 升级的一些显着的速度提升,所以根据具体情况,为此付出一些麻烦是值得的(Cake 2.0 最终放弃了对 PHP 4 的支持)。查看发行说明,看看新版本中是否有吸引您的东西。

要查看您的版本,请在 cake/VERSION.txt 文件中查看最后一行。这很容易错过,但它应该只是一个数字,例如1.3.8.

【讨论】:

    【解决方案2】:

    我现在正在迁移应用程序 1.3»2.0rc1,没有遇到什么大问题。

    1. 我不得不更改文件夹/文件的名称,例如。 app_controller.php » 控制器/AppController.php
    2. 关注迁移链接(tmp 链接)http://book2.cakephp.org/en/appendices/2-0-migration-guide.html
    3. plugins/components/.. 来自各种来源将无法正常工作(在减号处,对于第 1 点)
    4. 为了更新代码(在我的情况下不需要,因为应用程序运行良好)我已经对虚拟表进行了外壳烘焙并查看了代码中的差异。这是一个很好的起点
    5. 身份验证/授权在某些配置中发生了更改,但需要进行少量更改。
    6. 树木仍在工作
    7. Acl 没有。但我很确定这是我的错。

    现在一切都好了,干得好!

    【讨论】:

      【解决方案3】:
      1. 这个问题很难回答,因为它取决于项目的规模和复杂性。 “大”版本(从 1.1 -> 1.2、1.2 -> 1.3、1.3 -> 2.0)通常会破坏一些东西,因此您必须预算一些迁移工作。另一方面,“较小”版本之间的迁移(例如从 1.3.9 到 1.3.10)通常很容易,通常只是意味着替换 cake 文件夹。在这两种情况下,进行测试都很有用。
      2. 我迁移积极维护的项目。
      3. 你可以在cake/config/config.php找到CakePHP版本

      【讨论】:

        猜你喜欢
        • 2012-03-08
        • 1970-01-01
        • 2014-06-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-13
        相关资源
        最近更新 更多