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

时间:2016-02-09 00:05:38

标签: php composer-php autoloader psr-4

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

文件夹结构(无法发布img):

enter image description here

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'),
);

我看过无数帖子,但没有解决方案。这也发布在https://github.com/glowdemon1/translxtor,以防您需要更深入的了解。感谢。

2 个答案:

答案 0 :(得分:1)

我认为您应该在Translxtor中包含srcLangParserXML.class.php的{​​{1}}文件夹:

  

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

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

答案 1 :(得分:1)

将composer.json更新为:

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

或者在src/Transxtor/

之前添加LangParserXMl目录

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