Class 未找到 - PSR-4 命名空间自动加载

Class not found - PSR-4 namespaced autoloading

我想为我写的 class 设置 PSR-4 自动加载。但是我不断收到错误 Fatal error: Class 'Glowdemon1\Translxtor\LangParserXML' not found in C:\xampp\htdocs\translator\index.php on line 5

文件夹结构(还不能post img):

LangParserXML.class.php

namespace Glowdemon1\Translxtor;
class LangParserXML extends ErrorHandler implements ParserInterface{
...

index.php

require_once('vendor/autoload.php');
$translator = new Glowdemon1\Translxtor\LangParserXML('nl.xml');

composer.json

    "autoload": {
        "psr-4": {
            "Glowdemon1\": "src/"
        }
    }

autoload_psr4.php

return array(
    'Glowdemon1\' => array($baseDir . '/src'),
);

我看了无数 posts,但没有解决方案。这也在 https://github.com/glowdemon1/translxtor 上 post 编辑,以防您想更深入地了解。谢谢。

我认为您应该在 src 中有一个 Translxtor 文件夹,其中包含 LangParserXML.class.phpTranslator.class.php:

The contiguous sub-namespace names after the "namespace prefix" correspond to a subdirectory within a "base directory", in which the namespace separators represent directory separators. The subdirectory name MUST match the case of the sub-namespace names.

来源:http://www.php-fig.org/psr/psr-4/ `

将您的 composer.json 更新为:

"autoload": {
    "psr-4": {
        "Glowdemon1\Translxtor\": "src/"
    }
}

或者在 LangParserXMl

之前添加一个 src/Transxtor/ 目录

此外,您的文件名不能包含“.class”。它应该被称为 LangParserXML.php.