Проблема с автозагрузкой Composer - PullRequest
1 голос
/ 05 марта 2020

Я немного новичок в Autoload Composer, но, надеюсь, я правильно понял концепцию composer: в основном вы передаете некоторую базовую c информацию (composer. json) и composer затем генерирует классы, которые вы должны включить, а затем выполнять работу, которую вы хотели. Правильно?

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

Composer. json:

    "name": "lordrazen/dpgenerator",
    "description": "Page to generate Datapacks out of Rawfiles",
    "type": "project",
    "license": "GPL",
    "authors": [
        {
            "name": "LordRazen",
            "email": "something@gmail.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {},
    "autoload": {
        "psr-4": {"Inc\\": "inc/"}
    }
}

Класс «Test. php» внутри папки «In c»

namespace Inc;

class Test {

}

Index. php

if (file_exists(dirname(__FILE__) . '/vendor/autoload.php')) {
        require_once (dirname(__FILE__) . '/vendor/autoload.php');
    }

    $test = new Test();

Я также пошел в каталог проектов в консоли и нажмите команду "composer update".

Ну ... это все еще не работает:

Неустранимая ошибка: необработанная ошибка: класс 'Test' не найден в [...] / index. php: 34 Трассировка стека: # 0 {main} добавлено в [...] / index. php в строке 34

В чем здесь моя ошибка?

1 Ответ

1 голос
/ 05 марта 2020

У вас есть класс Test в пространстве имен в c, но вы не используете его, когда создаете экземпляр класса. Просто добавьте его в папку root index.php, вот так:

<?php

require_once __DIR__ . '/vendor/autoload.php';

$test = new \Inc\Test();
...