1

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

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

在此处输入图像描述

语言解析器XML.class.php

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

索引.php

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

作曲家.json

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

autoload_psr4.php

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

我看了无数帖子,但没有解决方案。如果您想要更深入地了解,这也发布在https://github.com/glowdemon1/translxtor上。谢谢。

4

2 回答 2

1

将您的 composer.json 更新为:

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

或者src/Transxtor/在你之前添加一个目录LangParserXMl

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

于 2016-02-09T00:21:37.717 回答
1

我认为你应该有一个包含and 的Translxtor文件夹:srcLangParserXML.class.phpTranslator.class.php

“命名空间前缀”之后的连续子命名空间名称对应于“基本目录”中的一个子目录,其中命名空间分隔符代表目录分隔符。子目录名称必须与子命名空间名称的大小写匹配。

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

于 2016-02-09T00:18:57.140 回答