2013-08-19 12 views
16

Ich habe ein Projekt, ich benutze Composer und ich importiere viele Dinge davon ... Ich brauche die autoload.php in meinem Index (die Wurzel des Projekts) und istead Slim, Mongo, Twig arbeiten sehr gut. Aber wenn ich eine Klasse von Respect/Validation nenne, funktioniert es nicht; wenn ich einfach Respekt verwenden/Validierung der Fehler ist:Warum meine autoload.php des Komponisten nicht funktioniert?

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

wenn ich versuche auch hier die autoload.php die Fehler zu verlangen, sind:

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

+0

I habe es in Composer/bin nach cmd getan ...dir = $ (d = $ (dirname "$ 0"); cd "$ d" $$ pwd) wenn Befehl -v 'cygpath'>/dev/null 2> & 1; dann dir = $ (cygpath -m $ dir); findir = $ (echo $ dir | sed 's// \/g') php "$ {dir} /composer.phar" $ * - –

+0

Haben Sie versucht, die Datei autoload.php in einer relativen Weise von wo aufzunehmen du brauchst? –

+0

Ich habe es versucht, und wie ich schon sagte, sagte ich, dass autoload.php nicht die Datei finden, aber wenn ich nur die "Verwendung" verlassen sagt mir, dass sagt mir, ich kann die Validator-Klasse nicht finden. –

Antwort

17

Wenn Sie mit einer Datei (file.php) in einem bestimmten Verzeichnis wie folgt aus:

/app/controller/validation 

und Ihrem Lieferanten-Verzeichnis ist in der Basispfad des Projekts, müssen Sie den relativen Pfad zu Anbieterverzeichnis aufgenommen werden :

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

Try mit php composer dump-autoload. Es kann dieses Problem beheben.

7

Ich tat dies. Ich habe die Datei und die Berechtigungen wie immer überprüft, aber alles sieht gut aus. Dann öffne ich autoload.php und sehe ... oh! wir haben __DIR__ natürlich. durch die frustrierende Verschwendung von Zeit für den Moment

ich dies tun

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

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

Nicht politisch korrekt zu

geändert, aber ich bekam.

natürlich gibt es bessere Alternativen zu __DIR__ wie mit einem BASE-Pfad usw. Aber das funktionierte für mich.

+2

2016 ... auch ich zog nach Python. : P – Vangel

0

Ich hatte das gleiche Problem mit Xampp. Ich habe Composer installiert und verwendet:

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

Mein Problem jetzt gelöst.

0

hatte ich das gleiche Problem, und ich löste es durch die letzte Version von Laravel verwenden, versuchen Sie einfach diesen Code Ihr Projekt zu erstellen:

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

dies immer die letzte Version verwendet.

0

Ich löste einfache Wiederholung Composer-Update aus dem Projekt Root. (mein Fall war auf Magento2, aber der Fehler und der Pfad sind gleich)

0

In meinem Fall habe ich einfach vergessen, mein Arbeitsverzeichnis zu ändern, bevor der Befehl composer require cboden/ratchet in cmd läuft dies darauf fixiert cd c:\path to project\ dann composer require cboden/ratchet

Verwandte Themen