我正在尝试将 CakePHP 3 项目升级到 CakePHP 4。已完成所有更新文件的迁移步骤,但当我启动程序时,它只显示:
Fatal error: Uncaught Error: Class "Cake\Routing\Router" not found in C:\laragon\www\bakeboss\vendor\cakephp\cakephp\config\bootstrap.php:26 Stack trace: #0 C:\laragon\www\bakeboss\config\bootstrap.php(32): require() #1 C:\laragon\www\bakeboss\webroot\index.php(27): require('C:\\laragon\\www\\...') #2 {main} thrown in C:\laragon\www\bakeboss\vendor\cakephp\cakephp\config\bootstrap.php on line 26
如果我进入引发错误的文件,它看起来像这样:
use Cake\Routing\Router;
/**
* @var float
*/
define('TIME_START', microtime(true));
require CAKE . 'basics.php';
// Sets the initial router state so future reloads work.
Router::reload();
它是“Router::reload();”这导致了错误,但正如您所看到的,它确实使用了 Routing\Router 命名空间,并且我的 IDE 可以很好地找到文件和类...?但由于某种原因,它不起作用..?
有人知道我可以尝试什么吗?
在 bootstrap.php 中首先从 Cake core 加载 paths.php、autoload.php 和 bootstrap.php:
require __DIR__ . '/paths.php';
// Use composer to load the autoloader.
require ROOT . DS . 'vendor' . DS . 'autoload.php';
require CORE_PATH . 'config' . DS . 'bootstrap.php';
use Cake\Routing\Router;
Router::reload();