我使用控制器为页面做一些自定义 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()在浏览器中访问视图,一切正常,加载了正确的视图文件,没有错误。但是,该方法会记录 404 错误消息loadView()。该loadView()方法甚至没有被该index()方法调用,但其输出在日志文件中的存在似乎表明它正在被执行。