Shlop
@Shlop
Full Stack Developer (PHP/Laravel/JavaScript)

Почему класс не найден при автозагрузке классов в папке с помощью composer?

Здравствуйте, подскажите пожалуйста. Сайт на CMS MODX, и в папке с классами которые выполняют загрузку товаров хотелось бы сделать автозагрузку классов, что бы не подключать классы через require_once.

Точка входа вот (этот файл запускается по cron):
/foo/bar/index.php
В этой папке/foo/bar так же лежит composer.json папка vendor и папка app с классами.

В composer.json
{
    "autoload": {
        "psr4": {
            "App\\": "app"
        }
    }
}

В index.php
include "vendor/autoload.php";

use App\Test;

Test::get();


Класса App\Test лежит вот тут: foo/bar/app/Test.php
И почему то ошибка: Uncaught Error: Class 'App\Test' not found

Подскажите пожалуйста в чём может быть проблема ? Я думаю может у меня с путями что-то не то. Потому что это же не в корне у меня, а в foo/bar.

Заранее благодарю за ответ.
  • Вопрос задан
  • 175 просмотров
Решения вопроса 1
Shlop
@Shlop Автор вопроса
Full Stack Developer (PHP/Laravel/JavaScript)
Попробовал так же в корне всё разместить, теперь вроде работает.
Только не в index.php всё написал (что бы не редактировать index.php modx) а просто создал тестовый файл qwe.php.

В нём:
<?php

include "vendor/autoload.php";

use App\Test;

Test::get();
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
После добавления неймспейса в `autoload` нужно обновить автозагрузчик.
Выполни composer dump-autoload
https://getcomposer.org/doc/03-cli.md#dump-autoloa...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы