3

我已经从 1.3 升级到 2.1.1,现在我似乎遇到了路径错误。关于运行升级外壳后需要进行哪些更改,是否有很好的参考指南?

我尝试更新核心路径以查看“lib/Cake”,

define('CAKE', CORE_PATH . DS.'lib'.DS. 'Cake' . DS);

但后来我开始收到包含错误。

致命错误:在第 143 行的 C:\inetpub\wwwroot\phpDev\lib\Cake\bootstrap.php 中找不到类“配置”<<

通过 App::uses() 在 bootstrap.php 中添加的核心组件失败(即使 App.php 需要 6 行以上)。

require CAKE . 'basics.php';
require CAKE . 'Core' . DS . 'App.php';  // App::uses() should work
require CAKE . 'Error' . DS . 'exceptions.php';


spl_autoload_register(array('App', 'load'));

App::uses('ErrorHandler', 'Error');
App::uses('Configure', 'Core');  //configure is included
App::uses('CakePlugin', 'Core');
App::uses('Cache', 'Cache');
App::uses('Object', 'Core');
App::$bootstrapping = true;

Configure::bootstrap(isset($boot) ? $boot : true); //this fails (line 143)

我在想我遗漏了一些东西,因为一旦我弄清楚核心路径,bootstrap、Configure.php、App.php 和 core.php 引用应该是一个全有或全无的修复。任何见解将不胜感激。

*** 更新 ****

在做了更多研究以查看其他人是否遇到过之后,我希望这是一个缓存问题。已清除持久性缓存文件但未缓存...

经过多次迭代要求 App::uses() 无法提供的文件后,我的 lib/Cake/bootstrap.php 代码如下所示

require CAKE . 'basics.php';
require CAKE . 'Core' . DS . 'App.php';
require CAKE . 'Core' . DS . 'Object.php';
require CAKE . 'Error' . DS . 'exceptions.php';
require CAKE . 'Error' . DS . 'ErrorHandler.php';
require CAKE . 'Error' . DS . 'ErrorHandler.php';
require CAKE . 'Core' . DS . 'Configure.php';
require CAKE . 'Core' . DS . 'CakePlugin.php';
require CAKE . 'Cache' . DS . 'Cache.php';
require CAKE . 'Routing' . DS . 'Dispatcher.php';
require CAKE . 'Utility' . DS . 'Debugger.php';
require CAKE . 'Utility' . DS . 'Set.php';
require CAKE . 'Utility' . DS . 'String.php';

spl_autoload_register(array('App', 'load'));

/*App::uses('ErrorHandler', 'Error');
App::uses('Configure', 'Core');
App::uses('CakePlugin', 'Core');
App::uses('Cache', 'Cache');
App::uses('Object', 'Core');*/

警告 (4096):传递给 Dispatcher::dispatch() 的参数 1 必须是 CakeRequest 的实例,没有给出,在第 84 行的 C:\inetpub\wwwroot\phpDev\app\webroot\index.php 中调用并定义 [CORE \lib\Cake\Routing\Dispatcher.php,第 69 行]

警告 (4096):传递给 Dispatcher::dispatch() 的参数 2 必须是 CakeResponse 的实例,没有给出,在第 84 行的 C:\inetpub\wwwroot\phpDev\app\webroot\index.php 中调用并定义 [CORE \lib\Cake\Routing\Dispatcher.php,第 69 行]

注意(8):未定义变量:request [CORE\lib\Cake\Routing\Dispatcher.php,第 70 行]

注意(8):试图获取非对象的属性 [CORE\lib\Cake\Routing\Dispatcher.php,第 70 行]

注意 (8):未定义变量:响应 [CORE\lib\Cake\Routing\Dispatcher.php,第 70 行]

警告 (4096):传递给 Dispatcher::asset() 的参数 2 必须是 CakeResponse 的实例,给定 null,在第 70 行的 C:\inetpub\wwwroot\phpDev\lib\Cake\Routing\Dispatcher.php 中调用并定义[CORE\lib\Cake\Routing\Dispatcher.php,第 236 行]

注意(8):未定义变量:request [CORE\lib\Cake\Routing\Dispatcher.php,第 70 行]

致命错误:在第 70 行的 C:\inetpub\wwwroot\phpDev\lib\Cake\Routing\Dispatcher.php 中的非对象上调用成员函数 here()

所以我什至没有得到蛋糕请求对象?App::uses() 被破坏也没有任何意义,因为我看到它实际包含在哪里,并且该方法的代码在那里。

我在想我忽略了一些东西。我对核心不是很熟悉,因为到目前为止我只是一个即插即用的开发人员。1.3 就像一个魅力,但我想在添加更多开发之前升级。我感谢所有建议。

4

1 回答 1

0

(Answered in a question edit. Converted to a community wiki answer. See Question with no answers, but issue solved in the comments (or extended in chat) )

The OP wrote:

The upgrade shell did not replace index.php in the app/webroot folder... I knew that the upgrade shell didn't come close to converting the code over to 2.0, but replacing that file was in line with what it actually did. I was surprised to find my old index file, and replacing it was what I needed to get the new framework operational (to the point where cake was at least generating it's own errors!) Thanks for the suggestions and comments.

As a side note, the upgrade shell was successful in renaming the files to match the new naming conventions, but didn't upgrade much of anything else outside of the framework folder.

于 2015-01-31T10:44:44.027 回答