从 Cake 1.3 迁移到 2.0 及更高版本 - 迁移现有的,还是仅用于新的?

Posted

技术标签:

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

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

我的问题:

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

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

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

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

【问题讨论】:

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

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

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

【讨论】:

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

【讨论】:

以上是关于从 Cake 1.3 迁移到 2.0 及更高版本 - 迁移现有的,还是仅用于新的?的主要内容,如果未能解决你的问题,请参考以下文章

与 JSF 2.2 及更高版本一起使用的 XML 命名空间

CentOS重开

从 AFNetworking 1.3 迁移到 AFNetworking 2.0 的问题

从版本 9 及更高版本测试不同版本的 IE 是不是有任何价值

Google Play 服务库 9.0 及更高版本

H2 数据库 1.3.156(或之前)和 1.3.157(及更高版本)之间的数据库连接问题