私が取り組んでいるプロジェクトの1つでは、バンドルごとにカスタム404ページを実装する必要があります。
ドキュメント内には、そのような機能については何も言及されていません。
私は何人かの同僚とこの問題について話し合っていて、kernel.exceptionイベントを使用する必要があると言われました。残念ながら、これにはバンドルが呼び出している情報がありません。
私見では、これはsymfonyルーターコンポーネントにパッチを適用することで修正する必要があります。これにより、開発者はケースをさらに処理できるキャッチオールルートを指定できます。
もう1つのオプションは、RouterInterface :: matchメソッドの動作を変更して、一致したパスとそれに一致したバンドルを含む一貫した出力を返すことです。現在、これは不可能です。一致が失敗した場合に例外がスローされ、情報がまったく提供されないためです。
たとえば、「/api」で始まるURLを処理するように定義されたApiBundleがあります。現在、これを処理してカスタム404ページを設定する唯一の方法は、kernel.exceptionおよびpreg_match()のURLでリクエストを取得することです。ただし、これはハードコーディングであり、バンドルにはそのような知識がないため、避ける必要があります。これは、app / config/routingファイルで定義されています。
あなたの意見は何ですか?
他の回避策もいただければ幸いです。