web-dev-qa-db-fra.com

Pourquoi mon autoload.php de compositeur ne fonctionne pas?

J'ai un projet, j'utilise Composer et j'importe beaucoup de choses par cela ... j'ai besoin du fichier autoload.php dans mon index (la racine du projet) et istead Slim, Mongo, Twig fonctionnent très bien. Mais quand j'appelle une classe de Respect/Validation, cela ne fonctionne pas; si j'utilise simplement Respect/Validation, l'erreur est la suivante:

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

si j'essaie d'exiger également ici autoload.php, les erreurs sont les suivantes:

**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)

18
Matteo Calò

Si vous utilisez un fichier (file.php) dans un répertoire particulier, procédez comme suit:

/app/controller/validation

et que votre répertoire de fournisseurs se trouve dans le chemin de base du projet, vous devez inclure le chemin relatif du répertoire de fournisseurs:

../../../vendor/autoload.php
17
Davide Pastore

Essayez d'utiliser php composer dump-autoload. Cela peut résoudre ce problème.

22
ciruvan

J'ai fait ça. J'ai vérifié le fichier et les permissions comme toujours mais tout a l'air correct. Ensuite, j'ouvre autoload.php et vois ... oh! nous avons __DIR__ ofcourse.

Je faisais ça

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

Changé en 

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

Pas politiquement correct mais m'a attiré par la frustrante perte de temps pour le moment.

bien sûr, il existe de meilleures alternatives à __DIR__ comme utiliser un BASE Path, etc. Mais cela a fonctionné pour moi.

8
Abhishek Dujari

Dans mon cas, j’ai simplement oublié de changer de répertoire de travail avant d’exécuter la commande composer require cboden/ratchet dans cmd, cela a été corrigé cd c:\path to project\ puis composer require cboden/ratchet

0
atswann

J'ai eu le même problème avec xampp. J'ai installé le compositeur et utilisé:

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

Mon problème est résolu maintenant.

0
jaip

J'ai eu le même problème et je l'ai résolu en utilisant la dernière version de laravel, essayez ce code pour créer votre projet:

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

cela utilise toujours la dernière version.

0
user4673171

J'ai résolu la mise à jour du compositeur à partir du projet Root. (mon cas était sur Magento2, mais l'erreur et le chemin sont les mêmes)

0

Je résous le problème sans install ou update sur composer et en déplaçant simplement require_once de la sous-classe à main page.

require_once 'vendor/autoload.php';
0