Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php “这是一个好主意吗?”;平";我的应用程序启动时我的数据库?_Php_Zend Framework_Zend Db - Fatal编程技术网

Php “这是一个好主意吗?”;平";我的应用程序启动时我的数据库?

Php “这是一个好主意吗?”;平";我的应用程序启动时我的数据库?,php,zend-framework,zend-db,Php,Zend Framework,Zend Db,我最近的一个问题()询问了如何捕获引导文件中的错误(并用ErrorController显示它们)。我使用的示例是在数据库实例化期间:如果引导过程中发生错误,它只会将错误转储到屏幕上,而不调用ErrorController 但是,比如说,在我的数据库实例化插件中,我有以下代码: public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) { $db = Zend_DB::factory("Pd

我最近的一个问题()询问了如何捕获引导文件中的错误(并用ErrorController显示它们)。我使用的示例是在数据库实例化期间:如果引导过程中发生错误,它只会将错误转储到屏幕上,而不调用ErrorController

但是,比如说,在我的数据库实例化插件中,我有以下代码:

public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) {
    $db = Zend_DB::factory("Pdo_Mysql", $this->config);
    Zend_Registry::set("db", $db);
}
即使数据库未连接,也不会抛出错误。这是因为
Zend_DB
不必检查数据库是否处于活动状态,以免浪费资源和时间

我的问题是我是否应该这样做:

public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request) {
    $db = Zend_DB::factory("Pdo_Mysql", $this->config);
    $db->getConnection();
    Zend_Registry::set("db", $db);
}

这样,任何连接问题都会在早期被发现并显示出来。这是个好主意吗?我的应用程序是否应该在第一次使用时等待检查数据库连接是否处于活动状态?

我将在错误控制器中设置Zend_Db异常类型的特定处理

PHP不是有状态的,所以应用程序的初始化将针对每个页面请求进行。如果我的页面请求甚至不需要数据库(例如,我的维护页面、错误页面等),该怎么办

最重要的是,在引导过程中如何正确处理无连接?如何确保呈现错误页面所需的任何其他资源已完成引导

然而,这只是我的偏好