2011-03-09 92 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())。插件和索引的最後一行都可能在重定向或死亡腳本上失敗。