web-dev-qa-db-ja.com

composer=の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)

18
Matteo Calò

ファイルを使用している場合(file.php)このような特定のディレクトリ内:

/app/controller/validation

ベンダーディレクトリがプロジェクトのベースパスにある場合、ベンダーディレクトリへの相対パスを含める必要があります。

../../../vendor/autoload.php
18
Davide Pastore

php composer dump-autoloadを使用してみてください。それはその問題を解決するかもしれません。

22
ciruvan

これは私がしました。私はいつものようにファイルとパーミッションをチェックしましたが、すべては大丈夫に見えます。次に、autoload.phpを開いて、参照してください...ああ!もちろん__DIR__があります。

私はこれをやっていた

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

に変更

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

政治的には正しくありませんが、今のところイライラする時間の無駄遣いで私を助けてくれました。

もちろん__DIR__の代わりにBASEパスなどを使用するなど、より良い代替手段があります。しかし、これはうまくいきました。

8
Abhishek Dujari

私の場合、コマンドを実行する前に作業ディレクトリを変更するのを忘れていましたcomposer require cboden/ratchet cmdでこれを修正cd c:\path to project\その後composer require cboden/ratchet

0
atswann

Xamppでも同じ問題が発生しました。私はcomposer=を使用して使用しました:

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

問題は解決しました。

0
jaip

私は同じ問題を抱えていたので、laravelの最後のバージョンを使用して解決しました。このコードを試してプロジェクトを作成してください:

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

これは常に最後のバージョンを使用します。

0
user4673171

プロジェクトのルートからの単純な再実行composer更新を解決しました。(私の場合はMagento2でしたが、エラーとパスは同じです)

installまたはupdate of composerを使用せずに、単にrequire_onceサブクラスからmain page

require_once 'vendor/autoload.php';