php - 已加载时未找到 PHP 类
问题描述
不知何故,我班的这一部分似乎不起作用。在其他方法中,我使用相同的 Package 类并且它没有给出错误。谁能告诉我我做错了什么?
$package = Package::get('Package', $data['Package']);
这是错误日志:
[Tue Sep 10 12:20:06.304734 2019] [php7:notice] [pid 2231] [client 10.0.2.2:55056] framework/Framework.php loaded!
[Tue Sep 10 12:20:06.304809 2019] [php7:notice] [pid 2231] [client 10.0.2.2:55056] framework/Auth.php loaded!
[Tue Sep 10 12:20:06.304978 2019] [php7:notice] [pid 2231] [client 10.0.2.2:55056] framework/Router.php loaded!
[Tue Sep 10 12:20:06.305747 2019] [php7:notice] [pid 2231] [client 10.0.2.2:55056] src/controllers/DefaultController.php loaded!
[Tue Sep 10 12:20:06.305876 2019] [php7:notice] [pid 2231] [client 10.0.2.2:55056] framework/View.php loaded!
[Tue Sep 10 12:20:06.305922 2019] [php7:notice] [pid 2231] [client 10.0.2.2:55056] framework/Model.php loaded!
[Tue Sep 10 12:20:06.305933 2019] [php7:notice] [pid 2231] [client 10.0.2.2:55056] src/models/Package.php loaded!
[Tue Sep 10 12:20:06.306602 2019] [php7:notice] [pid 2231] [client 10.0.2.2:55056] framework/Result.php loaded!
[Tue Sep 10 12:20:11.336808 2019] [php7:notice] [pid 2381] [client 10.0.2.2:55058] framework/Framework.php loaded!, referer: http://localhost/admin
[Tue Sep 10 12:20:11.337218 2019] [php7:notice] [pid 2381] [client 10.0.2.2:55058] framework/Auth.php loaded!, referer: http://localhost/admin
[Tue Sep 10 12:20:11.337306 2019] [php7:notice] [pid 2381] [client 10.0.2.2:55058] framework/Router.php loaded!, referer: http://localhost/admin
[Tue Sep 10 12:20:11.338517 2019] [php7:notice] [pid 2381] [client 10.0.2.2:55058] src/controllers/PackageController.php loaded!, referer: http://localhost/admin
[Tue Sep 10 12:20:11.338572 2019] [php7:notice] [pid 2381] [client 10.0.2.2:55058] src/Utils.php loaded!, referer: http://localhost/admin
[Tue Sep 10 12:20:11.347229 2019] [php7:error] [pid 2381] [client 10.0.2.2:55058] PHP Fatal error: Uncaught Error: Class 'Package' not found in /var/www/html/src/controllers/PackageController.php:115\nStack trace:\n#0 /var/www/html/framework/Framework.php(21): PackageController::upload()\n#1 /var/www/html/index.php(41): Framework::do()\n#2 {main}\n thrown in /var/www/html/src/controllers/PackageController.php on line 115, referer: http://localhost/admin
更新:
由于某种原因,单击上传按钮时它没有正确加载 Package 类。
[Tue Sep 10 12:51:04.802059 2019] [php7:notice] [pid 2230] [client 10.0.2.2:55774] framework/Framework.php loaded!, referer: http://localhost/admin
[Tue Sep 10 12:51:04.802103 2019] [php7:notice] [pid 2230] [client 10.0.2.2:55774] framework/Auth.php loaded!, referer: http://localhost/admin
[Tue Sep 10 12:51:04.802155 2019] [php7:notice] [pid 2230] [client 10.0.2.2:55774] framework/Router.php loaded!, referer: http://localhost/admin
[Tue Sep 10 12:51:04.802581 2019] [php7:notice] [pid 2230] [client 10.0.2.2:55774] src/controllers/PackageController.php loaded!, referer: http://localhost/admin
[Tue Sep 10 12:51:04.802610 2019] [php7:notice] [pid 2230] [client 10.0.2.2:55774] src/Utils.php loaded!, referer: http://localhost/admin
[Tue Sep 10 12:51:04.810391 2019] [php7:error] [pid 2230] [client 10.0.2.2:55774] PHP Fatal error: Uncaught Error: Class 'Package' not found in /var/www/html/src/controllers/PackageController.php:115\nStack trace:\n#0 /var/www/html/framework/Framework.php(21): PackageController::upload()\n#1 /var/www/html/index.php(41): Framework::do()\n#2 {main}\n thrown in /var/www/html/src/controllers/PackageController.php on line 115, referer: http://localhost/admin
这是应该加载类的代码:
spl_autoload_register(function ($class) {
$try = [
'src/models/%s.php',
'src/controllers/%s.php',
'src/%s.php',
'framework/%s.php',
];
foreach ($try as $path) {
$s = sprintf($path, $class);
if (file_exists($s)) {
require $s;
error_log($s . " loaded!");
return;
}
}
return false;
});
另一个更新 我调试了一些进口商:
[Tue Sep 10 13:15:57.424301 2019] [php7:notice] [pid 2381] [client 10.0.2.2:56076] src/models/Package.php does not exists, referer: http://localhost///admin
它没有找到,虽然它是正确的位置。它可能与三斜杠有关吗?
解决方案
推荐阅读
- php - PHP包括在错误的地方搜索
- python - OSX swift no module named 6
- windows - 为 QMainWindow 禁用 QSizeGrip
- html - 如何在不重新加载的情况下更改 HTML5 视频的 src?
- python - 无法拆分文本文件中的每一行
- python - 尝试将新数据插入到 mongo db 中,该数据库可能故意包含重复项
- mysql - sql查询 | 处理具有潜在空值的多个 where 条件
- mysql - nodejs + express + mysql 无法在后端得到任何响应
- javascript - d.getMilliseconds() 调用将毫秒格式化为始终为 3 位数
- javascript - 嵌套 AJAX 调用帮助 Angular JS