Почему мой autoload.php композитора не работает?

У меня есть проект, я использую Composer, и я им импортирую много вещей... Мне нужен autoload.php в моем индексе (корень проекта) и istead Slim, Mongo, Twig работают очень хорошо. Но когда я называю класс Respect/Validation, он не работает; если я просто использую Respect/Validation, ошибка:

Class 'Respect\Validation\Validator' not found in (path of file when i need it).

если я попробую также потребовать здесь autoload.php, ошибки:

**Warning**: require_once(vendor/autoload.php): failed to open stream: No such file or directory in (path of file when i need it)

**Fatal error**: require_once(): Failed opening required 'vendor/autoload.php' (include_path='.;C:\xampp\php\PEAR') in (path of file when i need it)

Ответы

Ответ 1

Если вы используете файл (file.php) в определенном каталоге, например:

/app/controller/validation

и каталог вашего поставщика находится в базовом пути проекта, вам необходимо указать относительный путь к каталогу поставщика:

../../../vendor/autoload.php

Ответ 2

Попробуйте использовать php composer dump-autoload. Это может решить эту проблему.

Ответ 3

Я сделал это. Я всегда проверял файл и разрешения, но все выглядит нормально. Затем я открываю autoload.php и вижу... о! мы имеем __DIR__, конечно.

Я делал это

require '../../vendor.autoload.php';

Изменено на

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

Не политически корректно, но вызвало разочарование траты времени на данный момент.

Конечно, есть лучшие альтернативы __DIR__ как использование BASE Path и т.д. Но это сработало для меня.

Ответ 4

У меня была такая же проблема с xampp. Я установил композитор и использовал:

composer create-project --stability=dev --prefer-dist yiisoft/yii2-app-basic D:\xampp\htdocs\newapp

Теперь моя проблема решена.

Ответ 5

У меня была такая же проблема, и я решил ее, используя последнюю версию laravel, просто попробуйте этот код для создания вашего проекта:

composer create-project laravel/laravel exampleProject --prefer-dist

это всегда использует последнюю версию.

Ответ 6

Я решил просто перезапустить обновление композитора из проекта Root. (мой случай был на Magento2, но ошибка и путь те же)

Ответ 7

В моем случае я просто забыл изменить свой рабочий каталог перед запуском команды composer require cboden/ratchet в cmd, это исправило его cd c:\path to project\, затем composer require cboden/ratchet

Ответ 8

Сала. Я решаю проблему без какой-либо install или update composer и просто перемещая require_once из подкласса на main page.

require_once 'vendor/autoload.php';