私にはプロジェクトがあり、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)
ファイルを使用している場合(file.php
)このような特定のディレクトリ内:
/app/controller/validation
ベンダーディレクトリがプロジェクトのベースパスにある場合、ベンダーディレクトリへの相対パスを含める必要があります。
../../../vendor/autoload.php
php composer dump-autoload
を使用してみてください。それはその問題を解決するかもしれません。
これは私がしました。私はいつものようにファイルとパーミッションをチェックしましたが、すべては大丈夫に見えます。次に、autoload.phpを開いて、参照してください...ああ!もちろん__DIR__
があります。
私はこれをやっていた
require '../../vendor.autoload.php';
に変更
require __DIR__.'../../vendor.autoload.php';
政治的には正しくありませんが、今のところイライラする時間の無駄遣いで私を助けてくれました。
もちろん__DIR__
の代わりにBASEパスなどを使用するなど、より良い代替手段があります。しかし、これはうまくいきました。
私の場合、コマンドを実行する前に作業ディレクトリを変更するのを忘れていましたcomposer require cboden/ratchet
cmdでこれを修正cd c:\path to project\
その後composer require cboden/ratchet
Xamppでも同じ問題が発生しました。私はcomposer=を使用して使用しました:
composer create-project --stability=dev --prefer-dist yiisoft/yii2-app-basic D:\xampp\htdocs\newapp
問題は解決しました。
私は同じ問題を抱えていたので、laravelの最後のバージョンを使用して解決しました。このコードを試してプロジェクトを作成してください:
composer create-project laravel/laravel exampleProject --prefer-dist
これは常に最後のバージョンを使用します。
プロジェクトのルートからの単純な再実行composer更新を解決しました。(私の場合はMagento2でしたが、エラーとパスは同じです)
install
またはupdate
of composer
を使用せずに、単にrequire_once
サブクラスからmain page
。
require_once 'vendor/autoload.php';