コントローラーを使用してページのカスタム uri ルーティングを行いますが、現在はうまく機能しています。
これは、PHPTAL をテンプレート エンジンとして使用するコントローラーの簡易バージョンです。
public function index()
{
$this->tal->display('index');
}
public function view($url)
{
$this->loadView($url);
}
private function loadView($url)
{
if (file_exists(ROOTPATH . 'webroot/' . $url . '/index.html'))
{
$this->tal->display($url . '/index');
}
else
{
show_404();
}
}
問題
最近、ページ コントローラーにアクセスするたびに、次のエラーがログに表示されることに気付きました。
ERROR - 2013-02-06 10:58:23 --> 404 Page Not Found -->
ページが期待どおりに表示され、404ヘッダーがまったくなく、ネットワークパネルが404ステータスを表示しないため、これは奇妙だと思いました.
show_404()
私は最終的に、メソッドで呼び出されているヘルパー メソッドにこれを絞り込みましたloadView()
。その行を削除すると、エラーがログ ファイルに完全に表示されなくなります。
この §show_404()§ は、ビュー ファイルが見つからない場合にのみ実行する必要があります。その場合、404 エラー ページを表示する必要があります。ただし、メソッドが呼び出されるかどうかに関係なく、メソッドのロギング部分は、ページ コントローラーへのすべての呼び出しで実行されているようにloadView()
見えます。
例
ブラウザーでビューにアクセスするindex()
と、すべて正常に動作しているように見え、正しいビュー ファイルが読み込まれ、エラーはありません。ただし、loadView()
メソッドから 404 エラー メッセージがログに記録されます。メソッドはメソッドloadView()
から呼び出されてindex()
いませんが、ログ ファイルにその出力が存在することは、メソッドが実行されていることを示しているようです。