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.php
和 Translator.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.
将您的 composer.json 更新为:
"autoload": {
"psr-4": {
"Glowdemon1\Translxtor\": "src/"
}
}
或者在 LangParserXMl
之前添加一个 src/Transxtor/
目录
此外,您的文件名不能包含“.class”。它应该被称为 LangParserXML.php
.
我想为我写的 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.php
和 Translator.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.
将您的 composer.json 更新为:
"autoload": {
"psr-4": {
"Glowdemon1\Translxtor\": "src/"
}
}
或者在 LangParserXMl
src/Transxtor/
目录
此外,您的文件名不能包含“.class”。它应该被称为 LangParserXML.php
.