提问人:Azur_Was_here 提问时间:8/26/2023 更新时间:9/16/2023 访问量:22
如何让 composer PSR-4 自动加载器自动加载正在扩展到自动加载的类的类?
How can I get composer PSR-4 autoloader to autoload a class that is extending on to a class that was autoloaded?
问:
错误信息
Fatal error: Uncaught Error: Class "Core\Controller" not found in C:\xampp\htdocs\Simple_App\src\Controllers\LoginController.php:7 Stack trace: #0 C:\xampp\htdocs\Simple_App\src\Core\Router.php(38): require() #1 C:\xampp\htdocs\Simple_App\public\index.php(14): Core\Router->route('/Simple_App/pub...', 'GET') #2 {main} thrown in C:\xampp\htdocs\Simple_App\src\Controllers\LoginController.php on line 7
似乎 LoginController 无法扩展到 Controller,但对我来说一切看起来都正确?
namespace Controllers;
use Core\Controller;
class LoginController Extends Controller {
// Code Stuff Here
}
Core 与 LoginController.php 所在的文件夹位于同一父目录中。我的composer.json自动加载器看起来像这样。
"autoload": {
"psr-4": {
"Core\\": "src/Core/"
}
}
这是我的索引.php页面
<?php
declare(strict_types=1);
session_start();
require_once __DIR__ . '/../vendor/autoload.php';
require_once '../src/Core/init.php';
use Core\Router;
$router = new Router();
$path = $_SERVER['REQUEST_URI'];
$method = $_POST['_method'] ?? $_SERVER['REQUEST_METHOD'];
$router->route($path, $method);
答:
0赞
Azur_Was_here
9/16/2023
#1
问题也出在 LoginController 扩展的类内部,我有一个未定义的属性并且出错了。如果文件有语法错误,则不能要求文件并运行它,因此请确保没有任何错误。
评论
composer dump-autoload