Композитор не загружает нужные классы автоматически

Я новичок в Composer, и я действительно изо всех сил пытаюсь автоматически загрузить мои классы с помощью Composer. Чего мне не хватает в следующем процессе?

Я установил пакет в папку PHP include (которая находится вне корневого каталога документа — я не уверен, что это важно) следующим образом:

composer require monolog\monolog

Он заявил, что он успешно завершен, и я подтвердил, что проект был добавлен в папку моего поставщика.

Весь мой файл composer.json выглядит так:

{
"require": {
"monolog/monolog": "^1.22"}
}

Весь мой тестовый файл выглядит так:

<?php

require_once "vendor/autoload.php";
use Monolog\Logger;

$log = new Logger("name");

?>

И я получаю эту ошибку при загрузке страницы:

Fatal error: Uncaught Error: Class 'Monolog\Logger' not found in C:\Dropbox\Projects\Web\Websites\Instamation\wwwroot\qbtest.php:6 Stack trace: #0 {main} thrown in C:\Dropbox\Projects\Web\Websites\Instamation\wwwroot\qbtest.php on line 6

Он включает в себя файл vendor / autoload.php без каких-либо ошибок.

Я попытался выполнить эти команды в композиторе без каких-либо изменений:

composer update
composer dump-autoload -0

Я также пробовал это с разными пакетами и получаю ту же ошибку, так что я почти уверен, что это не имеет ничего общего с пакетом monolog.

Есть ли здесь шаг, который мне не хватает? Мне не нужно вручную определять, какие классы загружать в json-файле, если они мне нужны в composer, не так ли?

Изменить 1:

Как и просили, вот пути к моим разным файлам.

Путь к тестовой странице:

C:\Dropbox\Projects\Web\Websites\Instamation\wwwroot\qbtest.php

Путь к файлу composer.json (вне корня документа, но в моем пути include):

C:\Dropbox\Projects\Web\Websites\Instamation\wwwincludes\composer.json

Моя папка продавца находится здесь:

C:\Dropbox\Projects\Web\Websites\Instamation\wwwincludes\vendor\

И внутри моей папки продавца у меня есть эти папки и файл:

bin/
composer/
monolog/
psr/
autoload.php

0

Решение

Вы должны включить автозагрузку в свой qbtest.php следующим образом:

require_once "../wwwincludes/vendor/autoload.php";
use Monolog\Logger;

$log = new Logger("name");
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]