2016-02-09 6 views
1

Я хотел настроить автозагрузку PSR-4 для класса, который я написал. Однако я получаю ошибку Fatal error: Class 'Glowdemon1\Translxtor\LangParserXML' not found in C:\xampp\htdocs\translator\index.php on line 5Класс не найден - PSR-4 с автозагрузкой имен

структуру папок (не можете 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, если вы хотите более глубокий внешний вид. Благодарю.

+0

Композитор 'ps-4' должен быть' Glowdemon1 \\ Translxtor \\ ' – Jon

ответ

1

обновляет composer.json на:

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

Или добавить каталог src/Transxtor/ перед вашими LangParserXMl

Кроме того, ваше имя файла не может содержать» .class ». Его следует просто называть LangParserXML.php.

+0

Спасибо за улучшение @Evert – chalasr

1

Я думаю, что вы должны иметь Translxtor папку в src, содержащего LangParserXML.class.php и Translator.class.php:

прилежащих имен суб-пространстве имен после «префикса пространства имен» соответствует подкаталогу в «директории», в котором разделители пространства имен представляют собой разделители каталогов. Имя подкаталога ДОЛЖНО соответствовать случаю имен под-имен.

Источник: http://www.php-fig.org/psr/psr-4/ `