Задать вопрос
FreshMeatInIT
@FreshMeatInIT
В замкнутом кругу

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

У меня есть проект, вот его структура:
5f8c45af6dd5e456589909.png
Я, соответственно, использовал Composer для автозагрузки классов, это прописал в cmposer.json:
"autoload":
    {
        "psr-4":
        {
            "core\\": "core",
            "application\\controllers\\": "controllers",
            "application\\models\\": "models",
            "application\\views\\": "views"
        }
    }

Не забыл нажать composer install.
У меня есть папка models, в которой лежат 2 файла: model.php и authmodel.php,
соответственно, это 2 класса, содержимое model.php:
namespace application\models;
require_once __DIR__.'/../../vendor/autoload.php';

class Model
{

}


И содержимое authmodel.php:
namespace application\models;
require_once __DIR__.'/../../vendor/autoload.php';

class AuthModel extends Model
{

}


Как видно, они находятся в одной и той же папке, у них подключён автозагрузчик от Composer, они находятся в одном и том же пространстве имён, но когда у меня задействуется AuthModel то я получаю ошибку:

Fatal error: Class 'application\models\Model' not found in D:\prog\openserv\OpenServer\domains\test.dev\application\models\authmodel.php on line 7
  • Вопрос задан
  • 257 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro Куратор тега PHP
frontend developer
1. Регистр символов имеет значение.
2. Не нужно подключать автозагрузчик в каждом файле. Это делается один раз, в точке входа.
3. Зачем столько мусора в конфигурации автозагрузчика?
Достаточно указать корневой неймспейс.
"psr-4":
        {
            "core\\": "core",
            "application\\": "application",
        }


здесь я подробно объяснял, как использовать композер для автозагрузки PSR-0 или PSR-4, и как правильно построить структуру проекта?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽