gpt4 book ai didi

Cakephp 从 1.3 升级到 2.1

转载 作者:行者123 更新时间:2023-12-02 12:01:13 25 4
gpt4 key购买 nike

更新:我问的问题并没有完全涵盖我在升级过程中的深度!如果你偶然发现这个,我希望我推送的答案对你有用

因此,为了让“论坛”插件正常工作,我决定将 cakephp 从 1.3 升级到 2.1

(这是因为论坛插件使用了一种叫做 CakeDC utils 的东西,它们已经升级到 cakephp 2.0,令人惊讶的是,论坛的 2.3 版本并不清楚它可以与哪些 utils 一起使用......)

好的,所以我已经按照此处的说明运行了蛋糕升级程序魔法的东西:

http://book.cakephp.org/2.0/en/console-and-shells/upgrade-shell.html#upgrade-shell

我运行了升级程序,它说它做了很多事情,看起来它确实做了很多事情。

现在,当我访问我的网站时,它已关闭 - 根本没有响应。

apache中的错误日志如下:

[Thu Apr 05 02:58:04 2012] [error] [client 173.45.125.112] PHP Fatal error: Can't find application core file. Please create /cake_install/app/config/core.php, and make sure it is readable by PHP. in /cake_install/cake/libs/configure.php on line 393



该文件不存在的原因是它在升级中更改为大写的“C”配置。我错过了什么?

最佳答案

这是我关于从 1.3 迁移到 2.x 的博文:http://www.forceflow.be/2011/11/12/migrating-from-cakephp-1-3-to-2-0/

为了将来引用,我在此处包含了该帖子的内容。享受!

入门

有几种更新方法,但对于中小型项目,我发现最好解压缩新的 CakePHP 2 结构,然后手动将 Controller 和 View 复制到它们的新文件夹中。请注意,文件夹结构已发生重大变化。例如, Controller 映射现在是 Controller 。注意你复制文件的位置——不要担心文件名本身,我们稍后会谈到。

确保使用应用程序的值更新 core.php 和 database.php(现在位于 (cakephp root)/app/Config)。确保也复制旧安装中的 salt 和 cipherseed 值,因为当您使用默认值时,CakePHP 会继续提示——这是一个安全风险。此外,为了使数据库连接重新启动并运行,语法已更改:

'driver' => 'mysqli'

变成
'datasource' => 'Database/Mysql'

批量工作:通过控制台升级

为了将所有应用程序文件重命名为新的 CakePHP 文件结构,有一个控制台命令。 CakePHP 2.0 的新功能是现在每个应用程序都有自己的控制台。导航到/app/Console 中的应用程序控制台(不是/lib/Cake 中的控制台!),通过对其执行 chmod +x 确保控制台命令是可执行的,然后执行:
./cake upgrade all

这会将所有文件重命名为新的蛋糕标准,并更新 PHP 代码中的所有引用。

清理

不幸的是,这还没有结束。您的代码现在运行良好的可能性很小。查看 CakePHP 2.0 迁移指南以获取更多信息。我将在这里总结一下我处理得最多的问题:

在您看来,您现在必须通过 $this 对象来处理 Helper 类。例如,不再调用
$html->link( 

, 它的
$this->Html->link( 

现在,先生。

还:
  • JavascriptHelper 现在称为 JsHelper。
  • Auth 组件发生了显着变化。使用组件时不会自动添加 login() 操作,您现在必须手动指定它。查看新的 Auth 组件文档以获取更多信息。

  • AjaxHelper 以及用于 AJAX 样式搜索的便捷功能(如观察字段)已被删除。我已经使用 jQuery 制作了自己的观察域——使用风险自负。我序列化了一个表单,在这种情况下,它包含一个查询输入框,允许我对预订进行实时搜索和更新。
    $this->Js->get('#query')->event('keyup', $this->Js->request(
    array('controller' => 'sales','action' => 'searchReservations', $event['Event']['id']),
    array(
    'update' => '#view',
    'async' => true,
    'dataExpression' => true,
    'method' => 'post',
    'data' => $this->Js->serializeForm(array('isForm' => false, 'inline' => true)))

    关于Cakephp 从 1.3 升级到 2.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10022103/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com