Symfony 3: カスタム名前空間でバンドルを生成した後に ClassNotFoundException が発生するのはなぜですか?

DDD
リリース: 2024-11-27 03:55:11
オリジナル
474 人が閲覧しました

Symfony 3: Why Get a ClassNotFoundException After Generating a Bundle with a Custom Namespace?

バンドル作成後の Symfony3 クラスが見つからない例外

generate:bundle コマンドを使用して Symfony3 で新しいバンドルを作成すると、新しく作成されたバンドルの ClassNotFoundException。この問題は、バンドルの作成中にカスタム名前空間が導入された場合に特に発生します。

根本的な原因は、generate:bundle コマンドが、新しい名前空間を含めるために、composer.json の autoload セクションを更新することを怠っているという事実にあります。その結果、サーバーの再起動時にオートローダーはバンドル クラスを見つけることができません。

この問題を解決するには、composer.json を手動で編集し、psr-4 セクション内に次のコードを追加します。

"Paul\": "src/Paul"
ログイン後にコピー

これにより、src ディレクトリ内の Paul 名前空間の場所がオートローダーに通知されます。

composer.json が更新されると、次のコマンドを実行して、オートローダーを更新し、サーバーを再起動します (必要な場合):

composer dumpautoload
ログイン後にコピー

これらの手順の後、ClassNotFoundException が解決され、バンドルに期待どおりにアクセスできるようになります。

追加ポイント:

  • この問題は Symfony の後に発生し始めました3.2 では、デフォルトの psr-4 名前空間マッピングが "" から AppBundle\ に変更されました。
  • 必要に応じて、composer.json を変更することで古い名前空間マッピングに戻すことができます。
  • 詳細については、 GitHub の問題を参照してください。 https://github.com/symfony/symfony-standard/issues/1098

以上がSymfony 3: カスタム名前空間でバンドルを生成した後に ClassNotFoundException が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート