ホームページ >バックエンド開発 >PHPチュートリアル >PHP コードが「require(vendor/autoload.php): failed to open stream」をスローするのはなぜですか? どうすれば修正できますか?
「require(vendor/autoload.php): ストリームを開けませんでした」エラー難題
問題:
次の一般的なトラブルシューティング手順にもかかわらず、PHP コードの先頭で「require(vendor/autoload.php): failed to open stream」エラーが発生し続けます。 vendor/autoload.php ファイルが存在しないようです。
回答:
問題の根本原因は、コンポーザー インストール コマンドが存在しないことである可能性が高くなります。このコマンドは、必要なパッケージをインポートし、自動ロード スクリプトを含むベンダー フォルダーを生成します。
ベンダー パスとコンポーザー コマンド:
vendor/autoload.php への相対パスが指定されていることを確認してください。ファイルは正しいです。たとえば、PHPMailer サンプル スクリプトを使用する場合、スクリプトは example/ ディレクトリにあるため、パスは ../vendor/autoload.php になります。
C:WindowsSysWOW64vendorautoload.php にある autoload.php ファイルこれはグローバルな Composer インストールである可能性が高く、特定のプロジェクトには関係ありません。
Composer のアップデートは Composer のインストールとは異なるため、このシナリオでは使用しないでください。 Composer アップデートはパッケージのバージョンを更新するため、慎重に扱わないとアプリケーションの破損を引き起こす可能性があります。これは実稼働サーバーではなく、ローカルでのみ実行する必要があります。
共有環境のローカル構成:
サーバー上のシェル アクセスが制限されている場合、composer はローカルで実行できます。ベンダーフォルダーを生成します。このフォルダーは、PHP スクリプトとともにアップロードできます。
Composer のインストールと更新:
Composer のインストールでは、ベンダー フォルダーが作成され、composer.lock ファイルが上書きされます。 Composer の更新でもインストールが実行されますが、composer.lock ファイルがまだ存在しない場合、パッケージのバージョンの競合が発生する可能性があります。したがって、これらのコマンドを区別することが重要です。
特定のパッケージの更新:
特定のパッケージのみを更新する必要がある場合は、composer update コマンドをパッケージ名とともに使用できます。これにより、パッケージのバージョンが再解決され、ベンダー フォルダー内で更新されます。
Composer の期待:
ライブラリには、composer.lock ファイルが含まれていないのが一般的です。バージョンを修正する責任はライブラリ開発者ではなく、アプリ開発者にあります。ライブラリは、複数のホスト環境間で互換性を維持することが期待されます。
Composer 2.0 パリティ:
Composer 2.0 は、インストール結果とアップデート結果の一貫性を保証します。 Composer 1.x を使用している場合は、Composer 2.0 にアップグレードすることをお勧めします。
以上がPHP コードが「require(vendor/autoload.php): failed to open stream」をスローするのはなぜですか? どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。