Композитор PSR-4 с автозагрузкой полностью игнорируется - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть файл composer.json:

{
    "name": "marko/art-empire",
    "description": "Social network",
    "type": "project",
    "authors": [
        {
            "name": "Marko Ilic",
            "email": "markowebdeveloper@gmail.com"
        }
    ],
    "require": {},
    "autoload": {
      "psr-4": {
        "Songs\\": "songs/"
      }
    }
}

файл autoload_psr4.php:

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
    'Songs\\' => array($baseDir . '/songs'),
);

Файл RandomSong.php в папке песен (которая находится вкорневой каталог):

namespace Song;

class RandomSong
{
    public function songName()
    {
        return 'Random Song';
    }
}

файл test.php:

require 'vendor/autoload.php';

use Songs\RandomSong;

$randomSong = new RandomSong();
echo $randomSong->songName();

Как видите, я пытаюсь автоматически загрузить класс RandomSong, но продолжаю получать:

Fatal error: Uncaught Error: Class 'Songs\RandomSong' not found in test.php

Пожалуйста, помогите, спасибо.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Ваш RandomSong использует Song пространство имен, в то время как ваш загрузчик предназначен для Songs пространства имен.

0 голосов
/ 11 февраля 2019

Ваше пространство имен называется Song, но вы называете его Songs

...