Автозагрузчик Composer не может найти класс - PullRequest
3 голосов
/ 20 сентября 2019

У меня проблема с загрузкой классов.

После установки пакета он не находит класс, вот его сообщение об ошибке:

   Illuminate\Contracts\Container\BindingResolutionException  : Target class [SundayIT\ChatbotAdmin\Commands\DBM_RealtimeStats] does not exist.

Вот первые несколькостроки класса, который пропущен автозагрузчиком:

<?php
    namespace SundayIT\ChatbotAdmin\Commands;

    use Illuminate\Console\Command;
    use Illuminate\Support\Facades\DB;
    use Symfony\Component\Console\Input\InputInterface;
    use Symfony\Component\Console\Output\OutputInterface;

    class DBM_RealtimeStats extends Command

Вот соответствующая часть файла composer.json пакета

    "autoload": {
        "psr-4": {
            "SundayIT\\ChatbotAdmin\\": "src/"
        }
    },

А вот структура файла: Directory screenshot

Что мне не хватает?Я попытался проверить другие вопросы здесь, но я не нашел решения.Спасибо

1 Ответ

1 голос
/ 21 сентября 2019

В соответствии со стандартом PSR-4 имена классов не должны содержать подчеркивания.

Подчеркивания не имеют никакого специального значения в какой-либо части полного имени класса.

Поэтому переименование класса в DbmRealtimeStats и файла в DbmRealtimeStats.php работает (как упоминалось здесь ).

...