【发布时间】:2020-07-06 20:02:31
【问题描述】:
从 Cake 3.8 更新到最新的 3.9 后,我的网站不再加载:
( ! ) 致命错误:未捕获的错误:第 31 行的 webroot\index.php 中找不到类“应用程序” (!) 错误:在第 31 行的 webroot\index.php 中找不到类“应用程序”。
我的 src/App;lication.php;
require dirname(__DIR__) . '/vendor/autoload.php';
use App\Application;
use Cake\Http\Server;
// Bind your application to the server.
$server = new Server(new Application(dirname(__DIR__) . '/config'));
// Run the request/response through the application
// and emit the response.
$server->emit($server->run());
第 31 行是:
new Server(new Application(dirname(DIR) . '/config'));
我已尝试对此进行调试,但错误来自“新应用程序”。据我所知,Application 类的引用方式与其他地方一样,例如在 cake.php 中。
我查看了这本书的 3.9 版发行说明。似乎还有其他一些关于 SO 的帖子报告了与早期 3.x 版本类似的问题,但没有一个给出正确答案。
任何建议,因为我完全不知所措。
【问题讨论】:
-
您有
src/Application.php文件吗?这就是应该找到这个类的地方。 -
@GregSchmidt 我同意,就像我在运行 composer updare 之前所做的那样
-
如果它在作曲家更新之前有效,但在更新之后无效,那么可能是自动加载器没有正确转储。尝试减少它(
composer dump-autoload),最好是在您的目标环境中,并检查它是否正确生成(即您的类名/命名空间存在),以及生成的文件(vendor/autoload.php,vendor/composer/autoload_*.php)是否可以通过以下方式访问PHP. -
运行 composer dump-autoload: 生成的自动加载文件包含 509 个类...
标签: cakephp-3.0