ホームページ >バックエンド開発 >PHPチュートリアル >バンドル作成後の Symfony 3 ClassNotFoundException: 「PaulArtBundle」エラーを修正するには?
バンドル作成後の Symfony3 ClassNotFoundException: 根本原因と解決策
Symfony 3.3 で新しいバンドルを作成すると、ユーザーは「ClassNotFoundException」が発生する可能性がありますローカルサーバーの実行中にエラーが発生しました。この例外は、クラスマップにクラスが存在しないためにオートローダーがクラスのロードに失敗した場合に発生します。
エラー メッセージは、Symfony が名前空間 "PaulArtBundle" から "PaulArtBundle" クラスをロードしようとしていることを示します。ただし、オートローダーにはこの名前空間またはクラス定義が含まれていません。
解決策:
この問題を解決するには、ユーザーが「composer.json」ファイルを手動で更新する必要があります。そして、次のエントリを「autoload」セクションに追加します。
"psr-4": { "AppBundle\": "src/AppBundle", "Paul\": "src/Paul" }
これは、名前空間「Paul」を定義し、これをバンドル クラスが存在する「src/Paul」ディレクトリにマップします。
「composer.json」ファイルを更新した後、次のコマンドを実行してオートローダーを生成し、サーバーを再起動します。
composer dumpautoload
ローカル サーバーを再起動します (必要な場合)。これにより、「ClassNotFoundException」エラーが修正され、バンドルが正しく認識されるようになります。
追加の考慮事項:
この問題は、Symfony 3.2 で導入された変更により発生します。 PSR-4 自動ロード ルールが変更され、空の名前空間が除外されました。この変更では、新しいバンドルを作成するときに「composer.json」ファイルで明示的に名前空間をマッピングする必要があります。
Symfony アプリケーションを管理するための新しいツールである Symfony Flex は、将来、必要な名前空間マッピング。
以上がバンドル作成後の Symfony 3 ClassNotFoundException: 「PaulArtBundle」エラーを修正するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。