Зенд "деструктор"? - PullRequest
       8

Зенд "деструктор"?

0 голосов
/ 10 марта 2011

Мы используем Zend Framework для MVC и Pear для доступа к базе данных.Мне было интересно, должен ли я закрывать соединение с базой данных каждый раз, когда запрос завершен?И если да, есть ли способ сделать это элегантно?

У нас есть около 50 действий, распределенных по нескольким контроллерам, и я не хочу помещать db-> disconnect () в конце каждого контроллера.Есть ли способ, которым я могу поместить эту команду разъединения в одном месте, «деструктор», если хотите, и заставить Zend вызывать ее автоматически при завершении запроса?

Ответы [ 2 ]

2 голосов
/ 10 марта 2011

В настоящий момент я могу подумать о двух возможностях, которые вы могли бы рассмотреть.

Во-первых, вы можете поместить свой "деструктор" в контроллер плагин , например, в ловушку dispatchLoopShutdown.

Во-вторых, если вы действительно хотите, чтобы что-то выполнялось в самом конце вашего запроса, вы можете поместить свой «деструктор» после $application->bootstrap()->run(); в ваш index.php.

0 голосов
/ 31 марта 2011

Только 100% пуленепробиваемый раствор использует register_shutdown_function().Он вызывается, даже если запрос перенаправлен ($this->_helper->redirector->gotoUrlAndExit()) или сценарий убит (используя die() или exit()).Оба - плагин и последняя строка индекса могут потерпеть неудачу при перенаправлении или уничтоженном скрипте.

...