如何让 Composer PSR-4 自动加载器自动加载扩展至自动加载的类的类?

问题描述 投票:0回答:1

错误信息

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/"
    }
}

这是我的index.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);
php oop namespaces
1个回答
0
投票

问题出在 LoginController 扩展的类内部,我有一个未定义的属性,并且出现错误。如果文件有语法错误,则不能要求文件并运行它,因此请确保没有任何错误。

© www.soinside.com 2019 - 2024. All rights reserved.