Не могу загрузить класс на Slim 3

Я пытаюсь загрузить свои собственные классы для модели на Slim 3 (используя скелет), поэтому я сделал следующее:

В app / composer.json:

"autoload": {
    "psr-4": {
        "App\\Classes\\": "/src/classes"
    }
},

В routes.php у меня есть такая настройка:

<?php

use Slim\Http\Request;
use Slim\Http\Response;
use Slim\Container;


// Routes
$app->get('/sugiere', function (Request $request, Response $response, array $args) {
    // Sample log message
    $this->logger->info("Slim-Skeleton '/' route");
    $cat_mapper = new \App\Classes\CategoryMapper($this->db);
    $comuna_mapper = new \App\Classes\ComunaMapper($this->db);
    $lang_mapper = new \App\Classes\LanguageMapper($this->db);
    $netw_mapper = new \App\Classes\NetworkMapper($this->db);
    $com_list = $com_mapper->getComunaList();
    $cat_list = $cat_mapper->getCategoryList();
    $lang_list = $lang_mapper->getLangList();
    $netw_list = $netw_mapper->getNetworkList();

Кстати, я добавил ко всем классам сверху пространство имен App \ Classes.

Что такое точно сообщение об ошибке?

Phil 05.06.2018 05:49

Не удалось запустить приложение из-за следующей ошибки: Подробности Тип: Сообщение об ошибке: Класс «App \ Classes \ CategoryMapper» не найден Файл: /home/ubuntu/workspace/santiago/src/routes.php Строка: 13

ffuentes 05.06.2018 05:50

Вы запускали composer dump-autoload после добавления конфигурации autoload в composer.json? См. getcomposer.org/doc/01-basic-usage.md#autoloading

Phil 05.06.2018 05:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
3
596
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш путь к /src/classes выглядит неверным. Маловероятно, что ваш каталог src находится в корне файловой системы.

Измените свой файл composer.json на

"autoload": {
  "psr-4": {
    "App\\Classes\\": "src/classes/"
  }
}

и беги

composer dump-autoload

для повторного создания файла autoload.php.

См. https://getcomposer.org/doc/01-basic-usage.md#autoloading

Я изменил его, но получаю ту же ошибку. Я получаю ошибку 500.

ffuentes 05.06.2018 06:03

@ffuentes точно изменил его на какие? Обновите свой вопрос, указав конфигурацию и код, которые вы используете в настоящее время.

Phil 05.06.2018 06:15

@ffuentes Не могли бы вы также показать снимок экрана с содержимым вашего каталога src/classes, а также определение пространства имен и класса в одном из ваших файлов, например src/classes/CategoryMapper.php

Phil 05.06.2018 06:18

Теперь я понимаю. Я изменил маршрут и написал инструкцию использования выше и при вызове метода.

ffuentes 05.06.2018 06:21

Другие вопросы по теме