2011-03-09 90 views
0

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

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

回答

2

目前我可以考虑两种可能性,你可以考虑。首先,您可以将控制器plugin中的“析构函数”放入例如“ dispatchLoopShutdown钩子。其次,如果你真的想要在你的请求的最后执行一些东西,你可以在你的index.php中放置你的“析构函数”在$application->bootstrap()->run();之后。

+0

谨慎使用这是我的建议。根据在应用程序上花费的平均用户时间(请求数量)和您网站上的用户数量,对此进行选择。根据服务或控制器的数量和使用情况以及非持久连接的使用情况进行下注。 – Gary 2016-01-01 10:24:33

0

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