最初使用PHP时,当我测试到数据库的连接时,我看到它执行以下操作
if (empty($this->_db)) { return; }但我现在遇到的问题是,当我的页面的这一部分没有连接到数据库时,我的页面就不会加载。我可以要这样的东西吗?
if (empty($this->_db))
{
$output .= "<!-- NOTICE WHEN DB SERVER IS DOWN -->";
$output .= '<dt><a href="http://someurl.php">Contact Us</a></dt>';
$output .= '<dd>We are currently updating our server. Please check back at a later time.</dd>';
return $output;
}我知道我可以测试它,但我想让它知道是否有正确的语法和/或更准确的方法来设置它。
发布于 2015-09-15 22:29:00
看起来挺好的。你可能还想返回一个503 (暂时不可用),这样即使谷歌机器人发现你猝不及防,它也不会毁了你。
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 300');//300 seconds发布于 2015-09-15 22:30:31
如果像数据库这样基本的东西不能工作,你应该抛出一个异常。然后,您应该有一个全局异常处理程序,它会输出一个很好的错误页面。这个全局异常处理程序可以在PHP代码中设置,也可以简单地在web服务器中配置,以便每当PHP脚本出错时,web服务器都会为特定的页面提供服务。
如果你在有异常的情况下进入依赖注入的面向对象编程,这样的问题只需要相对较少的代码,并且任何阶段的问题都会找到合适的错误处理程序。您当然不应该在代码中散布一堆if (..)检查来处理这样的全局错误情况。
https://stackoverflow.com/questions/32588592
复制相似问题