Cakephp从1.3升级到2.1

Cakephp从1.3升级到2.1,cakephp,cakephp-1.3,cakephp-2.0,Cakephp,Cakephp 1.3,Cakephp 2.0,更新:我问的问题并没有完全涵盖我做这个升级的深度!如果你无意中发现了这一点,我希望我提出的答案对你有用 因此,为了让“论坛”插件正常工作,我决定将cakephp从1.3升级到2.1 (这是因为论坛插件使用了一种叫做CakeDC-utils的东西,它们已经达到了cakephp2.0,令人惊讶的是,论坛的2.3版本不清楚它使用的是哪种utils…) 好的,我已经按照这里的说明运行了蛋糕升级程序magic thing: 我运行了升级程序,它说它做了很多事情,看起来它做了很多事情 现在,当我访问我的站

更新:我问的问题并没有完全涵盖我做这个升级的深度!如果你无意中发现了这一点,我希望我提出的答案对你有用

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

(这是因为论坛插件使用了一种叫做CakeDC-utils的东西,它们已经达到了cakephp2.0,令人惊讶的是,论坛的2.3版本不清楚它使用的是哪种utils…)

好的,我已经按照这里的说明运行了蛋糕升级程序magic thing:

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

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

apache read中的错误日志:

[Thu Apr 05 02:58:04 2012][error][client 173.45.125.112]PHP致命错误:找不到应用程序核心文件。请创建/cake_install/app/config/core.php,并确保php可读。在第393行的/cake_install/cake/libs/configure.php中


该文件不存在的原因是,它在升级时已更改为大写“C”配置。我缺少什么?

您可能在
app/webroot/index.php
中设置了自定义蛋糕路径。Cake 2.0的目录结构略有变化,通常由新代码处理,新代码会自动为
Cake\u CORE\u INCLUDE\u PATH
找到正确的值。另外,确保在同一
index.php
文件中正确设置了
APP_DIR

确保
app/webroot/index.php
包含指向Cake的正确路径,即
/path/to/Cake/lib

if (!defined('CAKE_CORE_INCLUDE_PATH')) {
  define('CAKE_CORE_INCLUDE_PATH', DS.'path'.DS.'to'.DS.'cake'.DS.'lib');
}

回到标准的
定义('CAKE\u CORE\u INCLUDE\u PATH',ROOT)
也可以工作,如果CAKE的设置方式不是太定制的话。

mensch给出的答案不是我需要的-我从未接触过index.php文件-因此我将详细介绍我在这里尝试的内容

我使用这个网站作为指导,但我自己的评论也!

(我也发现了这一点:如果上述教程失败,我可能会尝试一下。不过我对它不太感兴趣,我喜欢超级详尽的文档,而不是

Put `CakePlugin::loadAll();` in your app bootstrap to make sure this plugin is loaded
这对我来说是毫无意义的…你能指定文件的文件夹吗?文件中的任何特定位置来添加行吗?等等…我会尝试对我所做的事情进行详细说明!)

首先,我注意到我的蛋糕使用的index.php不是cake2.1代码附带的index.php。不确定为什么会出现这种情况,但我复制了“new”2.1 index.php(是的,这是app/webroot/index.php文件),现在出现了一个新错误:

注意:未定义索引:第94行的/cake_install/lib/cake/Core/Configure.php中出现错误注意:第95行的/cake_install/lib/cake/Core/Configure.php中出现异常致命错误:第126行的/cake_install/lib/cake/Error/ErrorHandler.php中的类名必须是有效对象或字符串

(其中cake_install是我的cake应用程序所在的文件夹)

现在正在做这个

现在我看到升级工具没有升级core.php文件-在app/Config中找到(对于2.1,app/Config对于1.3)。。。升级工具真正做了什么?我已经剪切并粘贴了2.1版本(也就是说,从2.1代码的zip文件中,我获取了/app/Config/core.php并将其移动到了我的/app/Config目录中),并确保了salt和安全值的交换。就这样

还是不走运。所以现在我升级了database.php文件(也在app/Config或app/Config中)~我更改了

'driver' => 'mysqli',

随机配置文件很有趣

啊,好的,所以升级到核心和数据库更改了错误消息。。。那好吗?仍然不确定他们大肆吹嘘的“升级”脚本做了什么。。。它只是更改了文件名?真的吗

警告(2):文件内容(/cake\u install/app/tmp/logs/error.log):无法打开流:权限被拒绝[CORE/cake/log/Engine/FileLog.php,第69行]

注意(1024):请将app/Config/core.php中“Security.cipherSeed”的值更改为特定于应用程序的数字(仅限数字)种子值[core/Cake/Utility/Debugger.php,第810行]

致命错误:在第31行的/cake_install/lib/cake/View/Helper/HtmlHelper.php中找不到类“AppHelper”

好的,我将/cake_install/app/tmp/logs/folder(chmod 777-R folderHere)和

…我想我从未升级过密码种子。好的,编一个新号码!(你问,密码种子是做什么的?嗯,好吧,bing帮不了什么忙-我读了代码。似乎是用来加密/解密cookies的?好吧,我可以接受)

Bootstrap.php

我将zip文件中的引导程序移到了我的版本中(感谢您提供的少量升级脚本!)。还没有做任何更改,我想我需要加载插件,虽然。。。我相信这是有很好记录的(哈!)

这就给我留下了一个错误:

致命错误:在第31行的/cake_install/lib/cake/View/Helper/HtmlHelper.php中找不到类“AppHelper”

当然,大肆吹嘘的蛋糕升级者也没能再升级一次。查看此页面:

好的,现在我必须制作文件-就像它们在那个页面中一样。唯一的诀窍是,是的,它在app文件夹中,而不是,cakePhp制作的我的app/View文件夹没有“Helper”子文件夹。。。因此,对于AppHelper.php,我必须在/app/View/下创建一个Helper子文件夹

嘿!现在我得到了一个背景和一个标志。。。这些:

注意(8):未定义变量:loggedIn[APP/pages/top_menu.html,第3行]

注意(8):未定义变量:html[APP/pages/top_menu.html,第25行]

致命错误:在第25行的/cake_install/app/pages/top_menu.html中对非对象调用成员函数link()

太好了。某种很酷的新cake 2功能,这意味着我不能使用$html?那似乎。。。奇怪的是,真的

解开
'datasource' => 'Database/Mysqli',
find . -type f -exec sed -i 's/app\/View\/Pages/\/cake_folder\/app\/View\/Pages/g' {} \;
<?php
CakePlugin::load('Uploader');
CakePlugin::loadAll();
app
    Plugin
        Uploader
            Config
            Locale
            <the other files here too!>
class YouTubeLoaderComponent extends Component {
    function __construct(ComponentCollection $collection, $settings = array()) {
        parent::__construct($collection, $settings);
        ...
    }
}
$results = $this->User->find('first',array(
    'conditions' => array("User.id" => ($this->Auth->user("id"))),
    'fields' => array("User.confirmed") 
)
);
if ($this->Auth->login($this->request->data)) {
    ... //argh! I am so confused by that line above!!!1
$user = $this->User->find('first', array(
    'conditions' => array('User.email' =>   $this->request->data['User']['email'])
    )
);
// Use the AuthComponent~Rs login action
if ($this->Auth->login($user['User'])) {
    ... //omg the extra check that the entry is in the db is just brilliant and efficient
'driver' => 'mysqli'
'datasource' => 'Database/Mysql'
./cake upgrade all
$html->link( 
$this->Html->link( 
$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)))