0

我们使用 Zend 框架的 MVC 和 Pear 来访问数据库。我想知道每次请求完成时是否应该关闭与数据库的连接?如果是这样,有没有办法优雅地做到这一点?

我们有大约 50 个动作分布在多个控制器中,我真的不想将 db->disconnect() 放在每个控制器的末尾。有没有一种方法可以让我将此断开连接命令放在一个位置,如果您愿意,可以放置一个“析构函数”,并让 Zend 在请求完成时自动调用它?

4

2 回答 2

2

目前我能想到两种可能性,你可以考虑。

首先,您可以将“析构函数”放入控制器插件中,例如 dispatchLoopShutdown 挂钩。

其次,如果你真的想在你请求的最后执行一些东西,你可以把你的“析构函数”$application->bootstrap()->run();放在你的 index.php 之后。

于 2011-03-10T12:34:57.207 回答
0

仅使用 100% 防弹解决方案register_shutdown_function()。即使请求被重定向($this->_helper->redirector->gotoUrlAndExit())或脚本被杀死(使用die()or exit()),它也会被调用。两者 - 插件和索引的最后一行都可能在重定向或终止脚本时失败。

于 2011-03-30T21:16:37.317 回答