私の人生では理解できない奇妙な問題があります。まず、PHPMVCフレームワークを最初から開発しました。私が抱えている問題は、exit()呼び出しの後にヘッダーリダイレクトが実行されることです。
ルーティングプロセスの概要は次のとおりです。
- REQUEST_URIは取り除かれ、要求されたコントローラー、メソッド、および引数は、スクリプトの後半で使用される変数に設定されます。
- router.phpは、要求されたコントローラーが実際に存在するかどうかを確認します。存在しない場合はfalseを返しますが、すべてがチェックアウトするとtrueを返します。
- trueを返す場合、要求されたコントローラー、メソッド、および引数を実行します。
- falseが返された場合、ルーターはカスタム404ページへのリダイレクトを送信します。これはPHPのheader()関数を使用し、header( "Location:*");の後にexit()があります。
ステップ4は、問題が発生する場所です。要求されたコントローラーが存在するため実行され、要求されたビューが存在するためすべてが正しくロードされますが、ビューが正常にロードされた後にexit()が呼び出されても、リダイレクトが実行されます。
ルーターが続行してリダイレクトを起動する理由はありますか?